我使用以下PHP函数:
file_get_contents('http://example.com');
每当我在某个服务器上执行此操作时,结果为空.当我在其他任何地方进行此操作时,结果就是页面的内容可能是什么.但是,当我在结果为空的服务器上,在本地使用该函数 - 无需访问外部URL(file_get_contents('../simple/internal/path.html');),它确实有效.
现在,我很确定它与某个php.ini配置有关.我不确定的是哪一个.请帮忙.
我正在做一个简单的应用程序,从15个不同的URL读取json数据.我有一个特殊的需要,我需要服务性地这样做.我在用file_get_contents($url).
因为我使用的是file_get_contents($ url).我写了一个简单的脚本,是吗:
$websites = array(
$url1,
$url2,
$url3,
...
$url15
);
foreach ($websites as $website) {
$data[] = file_get_contents($website);
}
Run Code Online (Sandbox Code Playgroud)
它被证明是非常慢的,因为它等待第一个请求然后再做下一个请求.
$html = file_get_contents("https://www.[URL].com");
echo $html;
Run Code Online (Sandbox Code Playgroud)
在错误日志中生成此:
PHP警告:file_get_contents(https:// www. [URL] .com)[function.file-get-contents]:无法打开流:HTTP请求失败!第13行/Applications/MAMP/htdocs/test.php中的HTTP/1.1 500内部服务器错误";
但是,该网站在浏览器中工作正常.
我也尝试过使用cURL.我没有在日志文件中得到任何错误,但$html现在回声:
'/'应用程序中的服务器错误.
你调用的对象是空的.......更多调试信息
任何想法如何解决这个问题?
我使用file_get_contents函数来获取和显示我的特定页面上的外部链接.
在我的本地文件中一切正常,但我的服务器不支持该file_get_contents功能,所以我尝试使用以下代码的cURL:
function file_get_contents_curl($url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
echo file_get_contents_curl('http://google.com');
Run Code Online (Sandbox Code Playgroud)
但它返回一个空白页面.怎么了?
我意识到我可以很容易地用CURL做到这一点,但我想知道是否可以使用file_get_contents()http流上下文将文件上传到远程Web服务器,如果是的话,怎么样?
当我在浏览器中使用以下URL时,它会提示我下载带有JSOn内容的文本文件.
https://chart.googleapis.com/chart?cht=p3&chs=250x100&chd=t:60,40&chl=Hello|World&chof=json
(点击上面的URL查看下载的文件内容)
现在我想创建一个php页面.我希望当我调用这个php页面时,它应该调用上面的URL并从文件中获取内容(json格式)并在屏幕上显示它.
我怎样才能做到这一点 ??
我只是用a file_get_contents()来获取像这样的用户的最新推文:
$tweet = json_decode(file_get_contents('http://api.twitter.com/1/statuses/user_timeline/User.json'));
Run Code Online (Sandbox Code Playgroud)
这在我的localhost上工作正常但是当我将它上传到我的服务器时它会抛出此错误:
警告: file_get_contents(http://api.twitter.com/1/statuses/user_timeline/User.json)[function.file-get-contents]:无法打开流:HTTP请求失败!HTTP/1.0 400错误请求...
不确定是什么导致它,也许我需要在我的服务器上设置php配置?
提前致谢!
使用file_get_contents作为自定义SOAP实现的一部分来应用SOAP调用(我们尝试的所有库都不会正确地使用SOAP 1.2进行基于SSL +证书的身份验证).然而,困难且几乎没有文档记录的API通常返回500.响应正文中有错误详细信息,但file_get_contents似乎不允许访问它.fopen似乎也有同样的问题.
做什么?
由于大量使用流上下文来使身份验证正常工作,因此不希望转到cURL.
什么是获取两个字符串之间内容的最佳方式,例如
ob_start();
include('externalfile.html'); ## see below
$out = ob_get_contents();
ob_end_clean();
preg_match('/{FINDME}(.|\n*)+{\/FINDME}/',$out,$matches);
$match = $matches[0];
echo $match;
## I have used .|\n* as it needs to check for new lines. Is this correct?
## externalfile.html
{FINDME}
Text Here
{/FINDME}
Run Code Online (Sandbox Code Playgroud)
出于某种原因,这似乎适用于我的代码中的一个地方而不是另一个地方.我是否以正确的方式解决这个问题?或者,还有更好的方法?
输出缓冲区也是这样做的方法还是file_get_contents?
提前致谢!
我正在尝试将JSON内容发布到远程REST端点,但是"内容"值在传递时似乎是空的.正确接收所有其他标头等,并且Web服务使用基于浏览器的测试客户端成功测试.
我的语法是否存在问题,我指定了"内容"字段?
$data = array("username" => "duser", "firstname" => "Demo", "surname" => "User", "email" => "example@example.com");
$data_string = json_encode($data);
$result = file_get_contents('http://test.com/api/user/create', null, stream_context_create(array(
'http' => array(
'method' => 'POST',
'header' => array('Content-Type: application/json'."\r\n"
. 'Authorization: username:key'."\r\n"
. 'Content-Length: ' . strlen($data_string) . "\r\n"),
'content' => $data_string)
)
));
echo $result;
Run Code Online (Sandbox Code Playgroud)