在HTML中剥离目录结构

时间:2011-08-08 10:10:25

标签: php regex

我有一个PHP应用程序,它读取了一些HTML。在这个HTML中可能有一个img标签。我想要做的是从图像标记的src中删除目录结构,例如

<img src="dir1/dir2/dir3/image1.jpg>
to 
<img src="image1.jpg">

有人有任何指示吗?

谢谢, 标记

3 个答案:

答案 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);