0

PHPを使用して、任意のWebサイトのソースコードにアクセスして印刷(または単に使用できるように)しようとしています。私はあまり経験がなく、これを達成するには JS を使用する必要があるかもしれないと考えています。これまでのところ、以下のコードは Web ページのソース コードにアクセスし、その Web ページを表示しています。代わりに、ソース コードを表示することを望んでいます。基本的に、そして最も重要なこととして、後で使用できるように、ソース コードを何らかの変数に格納できるようにしたいと考えています。最終的には行ごとに読みますが、これは後で取り組むことができます。

$url = 'http://www.google.com';
function get_data($url) 
{
    $ch = curl_init();
    $timeout = 5;
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
    $data = curl_exec($ch);
    curl_close($ch);
    return $data;
}
echo get_data($url); //print and echo do the same thing in this scenario.
4

5 に答える 5

2

file_get_contents()の代わりに使用することを検討してくださいcurl次に、すべての左角かっこ (<) を に置き換えてページに&lt;出力することで、ページにコードを表示できます。

<?php
$code = file_get_contents('http://www.google.com');
$code = str_replace('<', '&lt;', $code);
echo $code;
?>

編集:
curl は実際には FGC よりも高速であるように見えるため、その提案は無視してください。私の投稿の残りの部分はまだ立っています。:)

于 2012-12-27T22:38:31.667 に答える
1

関数を書き直しました。この関数は、行ありまたは行なしのソースを返すことができます。

<?php 
function get_data($url, $Addlines = false){
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
    $content = curl_exec($ch);
    $content = htmlspecialchars($content); // Prevents the browser to parse the html

    curl_close($ch);

    if ($Addlines == true){
        $content = explode("\n", $content);
        $Count = 0;
        foreach ($content as $Line){
            $lines = $lines .= 'Line '.$Count.': '.$Line.'<br />';
            $Count++;
        }
        return $lines;
    } else {
        $content = nl2br($content);
        return $content;
    }
}


echo get_data('https://www.google.com/', true); // Source code with lines
echo get_data('https://www.google.com/'); // Source code without lines
?>

それがあなたの道に役立つことを願っています。

于 2012-12-28T00:49:36.807 に答える
1

<pre></pre>タグの間に結果を出力するようにしてください。

echo '<pre>' . get_data($url) . '</pre>';
于 2012-12-27T22:50:05.850 に答える
0

ヘッダーを追加するContent-Type:text / plain

header("Content-Type: plain/text"); 
于 2012-12-27T23:21:22.523 に答える
0

ソース コードを出力するには、php でhtmlspecialchars()を使用します。

コードで、使用します

return htmlspecialchars($data);

それ以外の

return $data;

于 2014-01-13T10:38:18.293 に答える