php curl,通过代理网站修改链接标签,无法完全工作
这是密码php curl,通过代理网站修改链接标签,无法完全工作,php,string,Php,String,这是密码 <?php $url='http://isrc.ulster.ac.uk'; $var = fread_url($url);// function calling to get the page from curl $i=0; $linklabel = array(); $linklabelmod = array(); $link = array(); $dom = new DOMDocument(); @$dom->loadHTML($var); $xpath = new
<?php
$url='http://isrc.ulster.ac.uk';
$var = fread_url($url);// function calling to get the page from curl
$i=0;
$linklabel = array();
$linklabelmod = array();
$link = array();
$dom = new DOMDocument();
@$dom->loadHTML($var);
$xpath = new DOMXPath($dom);
foreach($xpath->query('//a') as $element) {
$linklabel[] = $element->textContent;
$link[] = $element->getAttribute("href");
$i=$i+1;
}
for($k=0;$k<$i;$k++) {
$linklabelmod[$k] = str_replace($linklabel[$k], $linklabel[$k]."[$k]", $linklabel[$k]);
$var = preg_replace( "/\\Q$linklabel[$k]\\E/", $linklabelmod[$k], $var, 1 );//modifying link labels
}
print $var;
function fread_url($url){
if(function_exists("curl_init")){
$ch = curl_init();
$user_agent = "Mozilla/4.0 (compatible; MSIE 5.01; "."Windows NT 5.0)";
$ch = curl_init();
curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);
curl_setopt( $ch, CURLOPT_HTTPGET, 1 );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt( $ch, CURLOPT_FOLLOWLOCATION , 1 );
curl_setopt( $ch, CURLOPT_FOLLOWLOCATION , 1 );
curl_setopt( $ch, CURLOPT_URL, $url );
curl_setopt ($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
$html = curl_exec($ch);
//print $html;//will printing the web page .
curl_close($ch);
}
else{
$hfile = fopen($url,"r");
if($hfile){
while(!feof($hfile)){
$html.=fgets($hfile,1024);
}
}
}
return $html;
}
?>
并非所有链接标签都在更改。我想通过附加一个唯一的编号来修改每个链接标签。请运行代码以便您可以看到错误。。Thx提前..在尝试替换之前检查是否找到匹配项如何?使用
我并不是想问这个来破坏你的问题,但你会如何回答别人的评论呢?我只在自己的评论中看到“添加评论”,谢谢。告诉我们错误是什么怎么样?不是所有链接标签都在修改。只有一些是完美的工作。如果我将url更改为“bbc.com”,它会显示一个错误作为警告:preg_replace()[function.preg replace]:第20行C:\wamp\www\test\f.php中的未知修饰符“0”,但我是一个noob,不知道如何实现特定的preg_匹配表达式?请提供示例帮助。
if(preg\u match(“/\\Q$linklabel[$k]\\E/”,$var))
。编辑:除非它实际上在抱怨实际的regexp语法。如果是这样,请尝试类似于“/”$linkLabel[$k]。“/i”
不,它不起作用,下面是实际的代码$dom=新的DOMDocument()@$dom->loadHTML($var)$xpath=新的DOMXPath($dom);foreach($xpath->query('//a')as$element){$linklabel[]=$element->textContent;$link[]=$element->getAttribute(“href”);$i=$i+1;}对于($k=0;$kHehe),我很高兴你设法解决了这个问题。我昨晚看到了你的回复,但我很匆忙,回到家后就忘了。