カールされたドキュメントのすべてのURLを絶対から絶対に変更できる正規表現を見つけようとしています。相対URLをCurlの後に絶対URLに変更する
私が見つけた方法の1つは投稿hereですが、それは最初のURLでのみ動作し、すべてではありません。
これは私が使用しているコードです:
私が間違っているの$url="http://www.example.com";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_FAILONERROR, 1);
curl_setopt($ch, CURLOPT_DNS_USE_GLOBAL_CACHE, 0);
curl_setopt($ch, CURLOPT_DNS_CACHE_TIMEOUT, 60);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
$result=curl_exec($ch);
curl_close($ch);
$result = preg_replace('~(href|src)=(["\'])(?!#)(?!http://)([^\2]*)\2~i','$1="http://www.example.com$3"', $result);
echo $result;
を?
EDIT 説明するだけです。私はURLの配列を持っていないが、私はカールから収集されたドキュメント全体を持っているので、私はpreg replaceメソッドが必要です。
の可能性のある重複[Transfrom相対経路を絶対URLにPHPを使用して](http://stackoverflow.com/questions/4444475/transfrom-relative-path -into-absolute-url-using-php) –
RamenChefの提案された変更でこのようにすることはできますが、http://stackoverflow.com/questions/4444475/transfrom- absolute-url-using-phpへの相対パス。 –
ありがとうございますが、私はURLの配列を持っている場合、そのURLは動作します。この場合、私はhtml文書に置き換えが必要です – Luca