php curl, изменение ярлыка ссылки через прокси-сайт, не полностью работает - PullRequest
1 голос
/ 04 июля 2010

Вот код

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

Не все ярлыки ссылок меняются. Я хочу, чтобы каждый ярлык ссылки изменялся путем добавления уникального номера Пожалуйста, запустите код, чтобы вы могли увидеть ошибку

1 Ответ

0 голосов
/ 05 июля 2010

Как насчет проверки, если совпадение было найдено, прежде чем пытаться заменить его? Использование preg_match .

Я не собираюсь портить ваш вопрос, задавая этот вопрос, но как один человек может ответить кому-то еще? Я только вижу «добавить комментарий» в свои комментарии, спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...