我有一个PHP应用程序,它读取了一些HTML。在这个HTML中可能有一个img标签。我想要做的是从图像标记的src中删除目录结构,例如
<img src="dir1/dir2/dir3/image1.jpg>
to
<img src="image1.jpg">
有人有任何指示吗?
谢谢, 标记
答案 0 :(得分:0)
作为一个建议,不是使用正则表达式,你可能最好使用像SimpleXML类这样的东西来遍历HTML,这样你就可以找到img标签及其src属性然后轻松地改变它。而不是必须尝试用正则表达式解析整个文档。完成后,您可以使用“/”分隔符爆炸字符串,并使用爆炸数组的最后一个值作为src属性。
PHP.net的SimpleXML手册:http://php.net/manual/en/book.simplexml.php
答案 1 :(得分:0)
这是一个如何更改HTMl文档中所有链接的教程:Scraping Links From HTML。
稍微修改一下这个例子就可以了:
<?php
require('FluentDOM/FluentDOM.php');
$html = '<img src="dir1/dir2/dir3/image1.jpg">';
$fd = FluentDOM($html, 'html')->find('//img[@src]')->each(
function ($node) use ($url) {
$item = FluentDOM($node);
$item->attr('href', basename($item->attr('src')));
}
);
$fd->contentType = 'xml';
header('Content-type: text/xml');
echo $fd;
?>
答案 2 :(得分:0)
如果你想用regexp尝试这个,这可能有效:
$subject = "dir1/dir2/dir3/image1.jpg";
$pattern = '/^.*\//';
$result = preg_replace($pattern, '', $subject);