Remove Anchor Tags From HTML String

This is how to remove certain HTML tags while keeping the inner content or text. In this example, I’ll show how to strip out anchor tags while preserving the innertext using PHP’s preg_replace_callback() function.

Remove Anchor Tags Using PHP

When you’re building websites, keeping your HTML clean is pretty important. Recently, my team ran into a situation where we needed to strip out some <a> link tags from a content string, but leave the rest of the HTML intact. It’s a common thing that comes up. So today, I want to share a handy little PHP snippet that makes selecting and removing only anchor tags a breeze.

Say you have some HTML text and you want to get rid of the tags around links, but keep the link text itself. The usual ways of doing this can mess things up sometimes and make you lose parts of the text that you want to keep.

The Solution

This PHP function utilizes a strategic regex pattern to precisely target and remove <a> tags while preserving the content they encapsulate. Let’s delve into the details.

 * Removes <a> tags and their closing tags while preserving inner text.
 * This function uses a regular expression to match and remove <a> tags and their closing tags,
 * while keeping the inner text of the <a> elements intact.
 * @param string $html The input HTML string.
 * @return string The modified HTML string with <a> tags and their closing tags removed.
function removeATags($html)
    // Use a regular expression to remove <a> tags and their closing tags while preserving inner text
    $pattern = '/<a\b[^>]*>(.*?)<\/a>/i';
    $html = preg_replace_callback($pattern, function ($match) {
        // Preserve the inner text of the <a> element
        return $match[1];
    }, $html);

    return $html;


The removeATags function employs preg_replace_callback to replace <a> tags with their inner text. This ensures a seamless removal process without sacrificing content. It’s simplicity meets effectiveness.

How to Use

Integrating this solution into your PHP code is straightforward. Simply call the removeATags function with your HTML string as an argument, and voila! Your HTML will be free of unwanted <a> tags.

// Your input HTML string
$inputString = '...';

// Call the function
$outputString = removeATags($inputString);

// Output the result
echo $outputString;

Enhancing HTML readability doesn’t have to be complex. Our PHP function offers a streamlined solution for removing <a> tags while preserving content. Elevate your coding experience effortlessly with this simple yet powerful tool.

In the ever-evolving landscape of web development, embracing efficient solutions is key. Our function not only simplifies your code but also contributes to improved SEO performance by promoting clean and semantically sound HTML.