0

我在 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用绝对 URL 替换 ed HTML 中的相对 URL。我熟悉将相对 URL 更改为绝对 URL,但我尝试将该解决方案插入此代码但未成功。

4

2 回答 2

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
?>

虽然接受你自己的答案可能是一种不好的形式,但嘿,我是那个想出来的人。

于 2012-05-14T20:00:50.133 回答
0

我这样做的方式是搜索="/并替换为="http://www.example.com/

例如:

$replaces['="/'] = '="http://www.example.com/';
$output = str_replace(array_keys($replaces), array_values($replaces), $output);

我没有检查这个,但它应该做你需要的。

于 2012-05-14T18:48:42.363 回答