0

リモート ページのソース コードを取得する作業を行っています。そのリモート ページの URL は、配列に従ってユーザーがクリックした URL から動的に取得されますarray('event_id', 'tv_id', 'tid', 'channel')

<?php
$keys = array('event_id', 'tv_id', 'tid', 'channel'); // order does matter
$newurl = 'http://lsh.streamhunter.eu/static/popups/';
foreach ($keys as $key)
    $newurl.= empty($_REQUEST[$key])?0:$_REQUEST[$key];

$newurl.='.html';
    function get_data($newurl) 
    { 
       $ch = curl_init();
       $timeout = 5;
       //$userAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US)AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.X.Y.Z Safari/525.13.";
       $userAgent = "IE 7 – Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30)";
      curl_setopt($ch, CURLOPT_USERAGENT, $userAgent);
      curl_setopt($ch, CURLOPT_FAILONERROR, true);
      curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
      curl_setopt($ch, CURLOPT_AUTOREFERER, true);
      curl_setopt($ch, CURLOPT_TIMEOUT, 10);
      curl_setopt($ch,CURLOPT_URL,$newurl);
      curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
      curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
      $data = curl_exec($ch);
      curl_close($ch);
      return $data;

    }

    $html = get_data($newurl);

    echo $html

?>

ここでの秘訣は、コードの 59 行目だけをエコーする方法です。

4

3 に答える 3

0

php 関数fileを使用してファイルを配列に読み込み、そのインデックスを使用することができます。

$html = file($newurl);

echo $html[58];
于 2013-05-08T14:30:10.620 に答える
0

から返されたデータの 59 行目を正確に取得したいが、$newurlそれがそれほど大きくなることを気にしない場合は、単にfile($newurl)[58].

からのデータについて話している場合はcurl、 を使用explode("\n", $data)して同様の配列を取得できます。

于 2013-05-08T14:30:21.173 に答える