2013-08-17 35 views
0

好的,这是我想要做的。我有一个MySql数据库,里面有文章。一些artictles有 图像,而有些有多个图片早在他们来支持这样的... ...在源代码中删除除了最后一个以外的多个图像

$preoutput = 'RANDOMHTML 
    <img src="http://example.com/image/SOMERANDOMIMG.jpg" alt="SOMERANDOMALTTEXT"> 
    <img src="http://example.com/image/SOMERANDOMIMG.jpg" alt="SOMERANDOMALTTEXT"> 
    <img src="http://example.com/image/SOMERANDOMIMG.jpg" alt="SOMERANDOMALTTEXT"> 
    RANDOMHTML' ; 

我想最后一个之前删除所有图像,有可能是在图像RANDOMHTML 以及我想忽略这些。这些图像是一遍又一遍的相同的图像,但在不同的大小, ,所以图像有不同的名称.... 140x80.jpg,280x160.jpg等。另一个说明,扩展名并不总是jpg 一些是PNG,GIF等等。

我想要的只是最后一张图片标签,因为它通常是最小的。 (无论如何CSS覆盖)

$output = 'RANDOMHTML 
    <img src="http://example.com/image/SOMERANDOMIMG.jpg" alt="SOMERANDOMALTTEXT"> 
    RANDOMHTML' ; 

我在想某种str_replace与计数函数什么的。

+0

是否由div或类似物包围的“背对背”图像? –

+0

**不要使用正则表达式来解析HTML。使用合适的HTML解析模块**您无法可靠地使用正则表达式解析HTML,并且您将面临悲伤和挫折。只要HTML从你的期望改变,你的代码就会被破坏。有关如何使用已经编写,测试和调试的PHP模块正确解析HTML的示例,请参阅http://htmlparsing.com/php。 –

回答

1

,您可以在使用使用爆炸事:

$string = 'RANDOMHTML 
<img src="http://example.com/image/SOMERANDOMIMG.jpg" alt="SOMERANDOMALTTEXT"> 
<img src="http://example.com/image/SOMERANDOMIMG.jpg" alt="SOMERANDOMALTTEXT"> 
<img src="http://example.com/image/SOMERANDOMIMG.jpg" alt="SOMERANDOMALTTEXT"> 
RANDOMHTML' ; 


$ex_string = explode('<img', $string); 

现在在这里你会得到所有的爆炸串..现在你只需要第一和最后一个字符串,使查询作为你想..

echo $ex_string[0].'<img '.$ex_string[3]; // we are adding img tag because it must have been removed due to explode 
//here $ex_string[0] is all the html that came before the first image is encountered 
//and $ex_string[3] would be the last image data and all the data HTML appending it 

?> 

这会给你想要的字符串。

+0

'也可能存在RANDOMHTML中的图像' –

+0

那些图像是否与所需图像具有相同的'前缀'src? – Rahul

+0

like:src ='http://example.com/image/img1.jpg'和src =“http://example.com/image/img2.jpg”等。 – Rahul

相关问题