我在shell脚本中使用以下命令: -
GET http://www.abc.com/ -H "Referer:http://www.abcd.com/"
并在PHP文件中跟随: -
$data=exec('GET http://www.abc.com/ -H "Referer:http://www.abcd.com/"');
echo $data;
现在请告诉我为什么当我在php文件中使用它时,这个命令没有提供页面的完整内容。
答案 0 :(得分:2)
exec
仅返回命令输出中的最后一行。要返回完整输出,请通过引用传入第二个参数:
exec('GET http://www.abc.com/ -H "Referer:http://www.abcd.com/"', &$data);
$data
将是一个数组,每行输出一个元素
答案 1 :(得分:1)
可能更容易:
$data = `GET http://www.abc.com/ -H "Referer:http://www.abcd.com/"`;
echo $data;
假设没有禁用shell_exec函数(这实际上就是反引号)。
答案 2 :(得分:0)
纯php的另一种选择:
$opts = array(
'http'=>array(
'method'=>"GET",
'header'=>"Referer: http://www.abc.com/\r\n"
)
);
$context = stream_context_create($opts);
$file = file_get_contents('http://www.abc.com/', false, $context);