我正在尝试访问,然后使用PHP打印(或只是能够使用)任何网站的源代码。我不是很有经验,我现在想我可能需要用JS来完成这个。到目前为止,下面的代码访问网页的源代码并显示网页...我想要它做的是显示源代码。从本质上讲,最重要的是,我希望能够将源代码存储在某种变量中,以便稍后使用。并最终逐行阅读 - 但这可以在以后解决。
$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.
答案 0 :(得分:2)
考虑使用然后,您可以使用file_get_contents()
代替curl
。 <
替换每个左括号(&lt;),然后将其输出到页面,在页面上显示代码。
<?php
$code = file_get_contents('http://www.google.com');
$code = str_replace('<', '<', $code);
echo $code;
?>
修改强>
看起来curl实际上比FGC更快,所以忽略这个建议。我的其余部分仍然有效。 :)
答案 1 :(得分:1)
您应该尝试在<pre></pre>
代码之间打印结果;
echo '<pre>' . get_data($url) . '</pre>';
答案 2 :(得分: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
?>
希望它能帮助你。
答案 3 :(得分:0)
添加标题Content-Type:text / plain
header("Content-Type: plain/text");
答案 4 :(得分:0)