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),我很高兴你设法解决了这个问题。我昨晚看到了你的回复,但我很匆忙,回到家后就忘了。