我想在我的网站上显示远程文件的内容(另一台服务器上的文件)。
我使用了以下代码,readfile()函数在当前服务器上正常工作
<?php
echo readfile("editor.php");
但是当我试图获取远程文件时
<?php
echo readfile("http://example.com/php_editor.php");
它显示以下错误:
301移动
该文件已移至here 224
我只收到此错误的远程文件,本地文件显示没有问题。
有没有解决这个问题?
谢谢!
答案 0 :(得分:8)
选项1 - 卷曲
使用CURL并将CURLOPT_FOLLOWLOCATION
- 选项设置为true:
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http//example.com");
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
if(curl_exec($ch) === FALSE) {
echo "Error: " . curl_error($ch);
} else {
echo curl_exec($ch);
}
curl_close($ch);
?>
选项2 - file_get_contents
根据PHP Documentation file_get_contents(),默认情况下最多会有20个重定向。因此,您可以使用该功能。失败时,file_get_contents()将返回FALSE,否则将返回整个文件。
<?php
$string = file_get_contents("http://www.example.com");
if($string === FALSE) {
echo "Could not read the file.";
} else {
echo $string;
}
?>