我正在PHP中使用curl检索一个简单的HTML页面:
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://example.com/server");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
?>
并include
将其放在我网站上的文件中:
<?php include('curlingCodeAbove.php');?>
我想用绝对网址替换curl
ed HTML中的相对网址。我熟悉Change a relative URL to absolute URL,但我尝试将该解决方案插入此代码中失败。
答案 0 :(得分:1)
我自己修好了。设置CURLOPT_RETURNTRANSFER
标志。
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://example.com/server");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$result = curl_exec($ch);
curl_close($ch);
$result = preg_replace("#(<\s*a\s+[^>]*href\s*=\s*[\"'])(?!http)([^\"'>]+)([\"'>]+)#",'$1http://mydomain.com/$2$3', $result);
echo $result
?>
虽然接受你自己的答案可能是不好的形式,嘿,我是那个想出来的人。
答案 1 :(得分:0)
我这样做的方法是搜索="/
并替换为="http://www.example.com/
例如:
$replaces['="/'] = '="http://www.example.com/';
$output = str_replace(array_keys($replaces), array_values($replaces), $output);
我没有检查过这个,但它应该做你需要的。