Questions tagged «file-get-contents»

3
如何使用file_get_contents在PHP中发布数据?
我正在使用PHP的函数file_get_contents()来获取URL的内容,然后通过变量处理标头$http_response_header。 现在的问题是某些URL需要将一些数据发布到URL(例如,登录页面)。 我怎么做? 我意识到使用stream_context我可以做到这一点,但我并不完全清楚。 谢谢。

16
file_get_contents():SSL操作失败,代码为1,无法启用加密
我一直试图从我在服务器上创建的PHP页面访问此特定的REST服务。我将问题缩小到这两行。所以我的PHP页面看起来像这样: <?php $response = file_get_contents("https://maps.co.weber.ut.us/arcgis/rest/services/SDE_composite_locator/GeocodeServer/findAddressCandidates?Street=&SingleLine=3042+N+1050+W&outFields=*&outSR=102100&searchExtent=&f=json"); echo $response; ?> 该页面死于第2行,并出现以下错误: 警告:file_get_contents():SSL操作失败,代码为1。OpenSSL错误消息:error:14090086:SSL例程:SSL3_GET_SERVER_CERTIFICATE:证书验证在第2行的... php中失败 警告:file_get_contents():无法在第2行的... php中启用加密 警告:file_get_contents(https://maps.co.weber.ut.us/arcgis/rest/services/SDE_composite_locator/GeocodeServer/findAddressCandidates?Street=&SingleLine=3042+N+1050+W&outFields=*&outSR=102100&searchExtent=&f=json):无法打开流:第2行... php中的操作失败 我们正在使用Gentoo服务器。我们最近升级到PHP版本5.6。升级之后,才出现此问题。 我发现我将REST服务替换为https://www.google.com;我的页面工作正常。 在较早的尝试中,我设置了“verify_peer”=>false,并将其作为参数传递给file_get_contents,如下所述: file_get_contents忽略verify_peer => false? 但是就像作者指出的那样;没关系。 我已经问过我们的服务器管理员之一,我们的php.ini文件中的这些行是否存在: 扩展名= php_openssl.dll allow_url_fopen =开 他告诉我,由于我们使用的是Gentoo,因此在构建时便会编译openssl;并且未在php.ini文件中设置。 我还确认这allow_url_fopen是可行的。由于此问题的特殊性质;我找不到很多帮助的信息。你们有没有遇到过这样的事情?谢谢。

5
file_get_contents()是否具有超时设置?
我file_get_contents()在循环中使用该方法调用一系列链接。每个链接可能需要超过15分钟的处理时间。现在,我担心PHP是否file_get_contents()有超时期限? 如果是,它将因通话超时而移至下一个链接。我不想在没有前一个链接完成的情况下调用下一个链接。 所以,请告诉我是否file_get_contents()有超时时间。包含的文件file_get_contents()设置为set_time_limit()为零(无限制)。

3
PHP cURL与file_get_contents
访问REST API时,这两段代码有何不同? $result = file_get_contents('http://api.bitly.com/v3/shorten?login=user&apiKey=key&longUrl=url'); 和 $ch = curl_init('http://api.bitly.com/v3/shorten?login=user&apiKey=key&longUrl=url'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $result = curl_exec($ch); 从以下两个方面判断,它们都产生相同的结果 print_r(json_decode($result))

12
如何使file_get_contents()与HTTPS一起使用?
我正在设置信用卡处理程序,需要对CURL使用替代方法。当我使用测试服务器(未调用SSL URL)时,以下代码可以正常工作,但是现在当我在使用HTTPS的工作服务器上对其进行测试时,它失败,并显示错误消息“无法打开流”。 function send($packet, $url) { $ctx = stream_context_create( array( 'http'=>array( 'header'=>"Content-type: application/x-www-form-urlencoded", 'method'=>'POST', 'content'=>$packet ) ) ); return file_get_contents($url, 0, $ctx); }

11
PHP file_get_contents()返回“无法打开流:HTTP请求失败!”
我在从PHP代码调用URL时遇到问题。我需要使用我的PHP代码中的查询字符串来调用服务。如果我在浏览器中键入url,它可以正常工作,但是如果我使用file-get-contents()进行调用,则会得到: 警告:file-get-contents(http:// ....)无法打开流:HTTP请求失败!HTTP / 1.1 202接受... 我使用的代码是: $query=file_get_contents('http://###.##.##.##/mp/get?mpsrc=http://mybucket.s3.amazonaws.com/11111.mpg&mpaction=convert format=flv'); echo($query); 就像我说的那样-从浏览器中调用即可正常运行。有什么建议? 我也尝试了另一个网址,例如: $query=file_get_contents('http://www.youtube.com/watch?v=XiFrfeJ8dKM'); 效果很好...可能是我需要调用的网址中包含第二个网址http://吗?

8
网址不存在时的file_get_contents
我正在使用file_get_contents()访问URL。 file_get_contents('http://somenotrealurl.com/notrealpage'); 如果URL不是真实的,它将返回此错误消息。我如何才能使其优雅地出错,以便使我知道该页面不存在,并在不显示此错误消息的情况下采取相应措施? file_get_contents('http://somenotrealurl.com/notrealpage') [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.0 404 Not Found in myphppage.php on line 3 例如在zend中,您可以说: if ($request->isSuccessful()) $client = New Zend_Http_Client(); $client->setUri('http://someurl.com/somepage'); $request = $client->request(); if ($request->isSuccessful()) { //do stuff with the result }

7
file_get_contents得到错误的结果
更新资料 我解决了问题并发布了答案。但是,我的解决方案并非100%理想。我宁愿只symlink从cachewith clearstatcache(true, $target)或中删除clearstatcache(true, $link)但那不起作用。 我还宁愿首先避免对符号链接进行缓存,也可以在生成符号链接后立即将其从缓存中删除。不幸的是,我没有运气。由于某些原因clearstatcache(true),创建符号链接后无法正常工作,但仍会对其进行缓存。 我会很高兴地将悬赏奖励给任何能够改善我的答案并解决这些问题的人。 编辑 我试图通过每次clearstatcache运行时生成一个文件来优化我的代码,因此我只需要为每个符号链接清除一次缓存。由于某些原因,这不起作用。clearstatcache每次symlink在路径中包含a时都需要调用它,但是为什么呢?必须有一种方法可以优化我拥有的解决方案。 我使用PHP 7.3.5带nginx/1.16.0。有时file_get_contents在使用时会返回错误的值symlink。问题是删除并重新创建符号链接后,其旧值保留在缓存中。有时返回正确的值,有时返回旧值。它似乎是随机的。 我试图用以下方法清除缓存或防止缓存: function symlink1($target, $link) { realpath_cache_size(0); symlink($target, $link); //clearstatcache(true); } 我并不是真的想要禁用缓存,但是我仍然需要100%的file_get_contents精度。 编辑 我无法发布我的源代码,因为它太长和太复杂了,所以我创建了一个最小的,可重现的示例(index.php),该示例再次出现了问题: <h1>Symlink Problem</h1> <?php $dir = getcwd(); if (isset($_POST['clear-all'])) { $nos = array_values(array_diff(scandir($dir.'/nos'), array('..', '.'))); foreach ($nos as $no) { unlink($dir.'/nos/'.$no.'/id.txt'); rmdir($dir.'/nos/'.$no); } foreach (array_values(array_diff(scandir($dir.'/ids'), array('..', '.'))) …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.