我正在使用cURL请求输出一些代码。为了将相对地址更改为绝对地址,我想在head标记中附加一个基本标记。
我以为preg_replace可以做到这一点,但我对正则表达式不太确定。
我想附加此标记
<base href="url">
可能的正则表达式将此标记附加到$ output我得到了我的cURL请求。
以下是我正在使用的cURL请求的代码。
$ch = curl_init();
// set a single option...
// ... or an array of options
curl_setopt($ch, CURLOPT_URL, $url);
// Set a referer
// User agent
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.2 (KHTML, like Gecko) Chrome/22.0.1216.0 Safari/537.2");
// Include header in result? (0 = yes, 1 = no)
curl_setopt($ch, CURLOPT_HEADER, 0);
// Should cURL return or print out the data? (true = return, false = print)
curl_setopt($ch, CURLOPT_REFERER, $url);
// Timeout in seconds
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch,CURLOPT_FOLLOWLOCATION,true);
// Download the given URL, and return output
$output = curl_exec($ch);
$output = str_replace('</head>','<base href="'.$href.'"></head>',$output);
//$output= preg_replace("/<head>/", "<head><base href=".$href.">", $output);
echo $output;
curl_close($ch);
答案 0 :(得分:0)
首先,请确保您的代码返回HTML的字符串(curl_exec)
第二次,你不需要preg_replace ,,,试试这个:
$yourString = str_replace('</head>', '<base href="url"></head>', $yourString);