php – REGEX:使所有网址都是绝对的

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – REGEX:使所有网址都是绝对的脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要一种方法获取 HTML代码块并使所有URL绝对.我试图采用各种正则表达式的例子,但没有运气.这些是要求:

>替换hrEF和SRC URL
>如果URL已经是绝对的,请保留它
>如果URL是绝对的,请将其替换

每个HTML都来自一个已知的URL(example.COM/folder/file.html),可用于创建绝对URL.例如:

src =“image.png”变为src =“http://example.com/folder/image.png”
href =“/ home.html”变为href =“http://example.com/home.html”

找到了一个完全符合我需要的功能

http://nashruddin.com/PHP_Script_for_Converting_Relative_to_Absolute_URL

但我无法弄清楚如何批量处理代码块中的所有URL.

任何帮助都会很棒!

干杯.

解决方法

这样的事可能有用

$html = preg_replace_callback(
      '~((href|src)\s*=\s*[\"\'])([^\"\']+)~i','replace',$html);

  function replace($x) {
     $url = $x[3];
     $url = your_url_conversion_function($url);
     return $x[1] . $url;
  }

如果您的html包含“href”或“src”外部标记,则会失败,如< h1>如何使用“src =”< / h1>.这就是人们通常为html建议专用解析器而不是regexp原因.

脚本宝典总结

以上是脚本宝典为你收集整理的php – REGEX:使所有网址都是绝对的全部内容,希望文章能够帮你解决php – REGEX:使所有网址都是绝对的所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。