假设相关问题的答案有效,
您应该能够使用以下处理简单 HTML DOM
$site = "http://siteyourgettinglinksfrom.com";
$doc = str_get_html($code);
foreach ($doc->find('a[href]') as $a) {
$href = $a->href;
if (/* $href begins with a absolute URL path */) {
$a->href = 'http://www.site.com?'.$href;
}
else{ /* $href begins with a relative path */
$a->href = 'http://www.site.com?'.$site.$href;
}
}
$code = (string) $doc;
或者
使用PHP 的原生 DOM 库:
$site = "http://siteyourgettinglinksfrom.com";
$doc = new DOMDocument();
$doc->loadHTML($code);
$xpath = new DOMXpath($doc);
foreach ($xpath->query('//a[@href]') as $a) {
$href = $a->getAttribute('href');
if (/* $href begins with a absolute URL path */) {
$a->setAttribute('href', 'http://www.site.com?'.$href);
}
else{ /* $href begins with a relative path */
$a->setAttribute('href', 'http://www.site.com?'.$site.$href);
}
}
$code = $doc->saveHTML();
检查 $href:
您将检查相对链接并在您从中提取内容的网站地址之前添加,因为大多数网站都使用相对链接。(这就是正则表达式匹配器是你最好的朋友的地方)
对于相对链接,您可以在您从中获取链接的站点的绝对路径之前添加
'http://www.site.com?'.$site.$href
对于绝对链接,您只需附加相对链接
'http://www.site.com?'.$href
示例链接:
网站相关:/images/picture.jpg
文档相关:../images/picture.jpg
绝对:http://somesite.com/images/picture.jpg
(注意:这里需要做更多的工作,因为如果您处理“文档相关”链接,那么您将必须知道您当前所在的目录。站点相关链接应该很好,只要您拥有从中获取链接的站点的根文件夹)