0

我正在尝试在这样的字符串中提取所有 href 和 src:

$content = "
At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium
voluptatum deleniti Image: <img src = 'http://example.com/check-3.png' /> Link: <a href ='http://example.com/test.xls'>test.xls</a>";

基本上我想做的是将example.com更改为不同的域名(例如test.com),然后从hrefs和srcs中提取所有文件名。我能够使用简单的 str_replace 进行域名替换,但现在我被困在尝试提取 href 和 srcs 的过程中。

这是我尝试使用的内容:

$regex = "/src=[\"' ]?([^\"' >]+)[\"' ]?[^>]*>.*?href=[\"' ]?([^\"' >]+)[\"' ]?[^>]*>/i";

如果 src (或 href )和 = (例如 )之间没有空格,这似乎有效,但如果有空格(例如 ),则它不起作用。我尝试添加空格字符,但预匹配失败。我不想使用像简单 HTML dom 这样的繁重库,此外我认为它不会因为它不是正确的 HTML 文档而工作。这是一个来自ckeditor的字符串。

4

1 回答 1

1

为什么不在空间上添加量词?

$regex = "/src *= *[\"' ]?([^\"' >]+)[\"' ]?[^>]*>.*?href=[\"' ]?([^\"' >]+)[\"' ]?[^>]*>/i";
               ^  ^
于 2012-08-29T16:47:16.590 回答