Jump to content


This topic is now archived and is closed to further replies.


Preg_match image source than remove entire image tag from html

Recommended Posts

I have a table with rows of small bits of html code.

I have already set it up to look for each row that has an image in the code like so

<img src="http://www.site.com/file.jpg" width="80" height="90">

I need to create a program with preg_match and preg_replace that will first find the image file's source and then remove the entire image tag.

the image tags can be slightly different. some have the '/' at the end and some come with alt tags.

How can I do this? I need to get the source then remove the whole thing entirely.


Share this post

Link to post
Share on other sites

$tests = array(
'<img src="1.jpg">',
'<img src="1.gif"/>',
'<img src="abc.png" />',
'<img alt="image" src="1a.gif">',
'abc<img src="1.jpg">123',
'abc<img src="1.jpg">123<img alt="image" src="1a.gif" />xyz',

$sources = array();

foreach ($tests as $test) {
echo 'Original: ' . htmlentities($test), '<br/>';
while (preg_match('/<img(.*?)>/', $test, $matches)) {
if (preg_match('/src="(.+?)"/', $matches[1], $source_matches)) {
array_push($sources, $source_matches[1]);
echo 'Source: ', $source_matches[1], '<br/>';
$test = preg_replace('/' . preg_quote($matches[0], '/') . '/', '', $test);

echo 'After: ' . htmlentities($test), '<br/><br/>';

echo 'Sources: ', '<br/>';

Original: <img>

Original: <img src="1.jpg">
Source: 1.jpg

Original: <img src="1.gif"/>
Source: 1.gif

Original: <img src="abc.png" />
Source: abc.png

Original: <img alt="image" src="1a.gif">
Source: 1a.gif

Original: abc<img src="1.jpg">123
Source: 1.jpg
After: abc123

Original: abc<img src="1.jpg">123<img alt="image" src="1a.gif" />xyz
Source: 1.jpg
Source: 1a.gif
After: abc123xyz

    [0] => 1.jpg
    [1] => 1.gif
    [2] => abc.png
    [3] => 1a.gif
    [4] => 1.jpg
    [5] => 1.jpg
    [6] => 1a.gif

Share this post

Link to post
Share on other sites


Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.