标签: file-get-contents

在 PHP 中从远程服务器检索文件时处理延迟

我正在使用 PHP 来访问远程服务器上的文件和照片。我主要使用 file_get_contents() 和 copy() 函数。

有时访问一个小文本文件或照片几乎是即时的,但有时它似乎会在同一个文件上“卡住”一分钟。有时它实际上会导致我的脚本挂起,即使我停止脚本,Apache 仍会锁定几分钟。

我非常愿意接受互联网连接可能不稳定的事实。我担心的是我可以正常恢复并且不会使 Apache 崩溃 - PHP set_time_limit() 函数仅返回致命错误。另外,PHP手册中有一条注释,流操作所花费的时间不会影响脚本的运行时间。

如何从此类连接问题中恢复并允许我的脚本继续运行?为什么这会导致 Apache 挂起?

谢谢,布莱恩

php apache file-get-contents remote-server

5
推荐指数
1
解决办法
2129
查看次数

php file_get_contents - javascript 执行后

基本上,我正在尝试使用 php 抓取网页,但我想在页面上的初始 javascript 执行之后执行此操作 - 我想在初始 ajax 请求之后访问 DOM 等...有什么方法可以做到这一点吗?

javascript php file-get-contents

5
推荐指数
1
解决办法
1万
查看次数

当使用浏览器打开 URL 并且 URL 有效时,file_get_contents 返回 404

我收到以下错误:

警告: file_get_contents( https://www.readability.com/api/content/v1/parser?url=http://www.redmondpie.com/ps1-and-ps2-games-will-be-playable-on- playstation-4-very-soon/?utm_source=dlvr.it&utm_medium=twitter&token=MYAPIKEY) [function.file-get-contents]:无法打开流:HTTP 请求失败!HTTP/1.1 404 NOT FOUND in /home/DIR/htdocs/readability.php 第 23 行

通过一些 Echoes,我得到了函数解析的 URL,它很好且有效,我从浏览器发出请求,一切正常。

问题是我用 file_get_contents 得到了上述错误,我真的不明白为什么。

URL 有效并且该功能未被免费托管服务阻止(所以我不需要 Curl)。

如果有人能发现我的代码中的错误,我将不胜感激!谢谢...

这是我的代码:

<?php

class jsonRes{
    public $url;
    public $author;
    public $url;
    public $image;
    public $excerpt;
}

function getReadable($url){
 $api_key='MYAPIKEY';
 if(isset($url) && !empty($url)){

    // I tried changing to http, no 'www' etc... -THE URL IS VALID/The browser opens it normally-

    $requesturl='https://www.readability.com/api/content/v1/parser?url=' . urlencode($url) . '&token=' . $api_key;
    $response = file_get_contents($requesturl);   // * here the …
Run Code Online (Sandbox Code Playgroud)

php url json file-get-contents http-status-code-404

5
推荐指数
1
解决办法
7254
查看次数

通过 file_get_contents 传递 PHP xdebug 上下文

我用来file_get_contents()查询 PHP 应用程序的另一部分。我很乐意构建一个“POST”甚至多部分查询来模拟文件上传,但我似乎无法弄清楚如何将挂钩的处理file_get_contents()放入我现有的 xdebug 会话中(正在工作,因为我可以逐步完成查询处理)。

我尝试过传递XDEBUG_SESSION当前正在处理的请求中的 cookie,但它似乎没有达到我想要的效果。

php xdebug file-get-contents

5
推荐指数
0
解决办法
344
查看次数

通过 div id 获取 file_get_contents

我试图从外部网页(https://uconn.givecorps.com/projects/3120-uconn-marching-band-tower-project)获取特定div(id =“total_raised”)的内容。这是我的代码:

$url = 'https://uconn.givecorps.com/projects/3120-uconn-marching-band-tower-project';
$content = file_get_contents($url);
$first_step = explode( '<div id="total_raised">' , $content );
$second_step = explode("</div>" , $first_step[1] );

echo $second_step[0];
Run Code Online (Sandbox Code Playgroud)

当我回显 $content 时,一切都显示正常。但当我试图仅回应筹集的美元金额时,什么也没有显示。

php file-get-contents

5
推荐指数
1
解决办法
9668
查看次数

file_get_contents 通过 php 失败,通过浏览器工作

我想要实现的目标:
\n向 API 端点发出请求,检索 XML 并随后解析结果。
\n我正在发送一个file_get_contents请求来实现此目的。

\n\n

问题:

\n\n
`file_get_Contents` fails, error:  \n\nWarning: file_get_contents(https://api.twitter.com/1.1/statuses/mentions_timeline.json):\nfailed to open stream: \n        A connection attempt failed because the connected party did not properly \nrespond after a period of time, or established connection failed because \nconnected host has failed to respond. \n
Run Code Online (Sandbox Code Playgroud)\n\n

更新 17/08

\n\n

为了巩固我目前的理解:
\n 1. PHP 失败:
\n1.a 它通过 php (超时)失败
\n1.b 它通过命令行失败(curl -G http://api.eve-central.com/api /quicklook?typeid=34 )
\n1.c file_get_contents
\n1.d file_get_contents w/ create_stream_context

\n\n

2. 有效方法:
\n2.a 通过 …

php curl timeout simplexml file-get-contents

5
推荐指数
1
解决办法
3432
查看次数

PHP HTTP 426 - file_get_contents 与 curl

我有一个简单的 PHP 脚本,它向外部 API 发送带有一些参数的 GET 请求,并接收一些 json 数据作为响应。

我用过file_get_contents这个,它在过去几个月里有效。

例子:

$url = 'https://example.com?param1=xxx&param2=yyy';
$data = file_get_contents($url);
Run Code Online (Sandbox Code Playgroud)

突然它停止工作,出现以下错误:

failed to open Stream: HTTP request failed!
HTTP1/1 426 Upgrade Required
Run Code Online (Sandbox Code Playgroud)

我用它替换了它cURL并且它起作用了:

function curlGet($url) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $response = curl_exec($ch);
    curl_close($ch);
    return $response;
}
Run Code Online (Sandbox Code Playgroud)

我的问题是:

  • 什么会导致这种行为?
  • 2种方法到底有什么区别?
  • 我应该总是使用 curl 吗?
  • 使用时有没有办法防止这个问题file_get_contents

我认为我服务器上的任何内容都没有改变。我也在本地测试了它,它有相同的问题/解决方案,所以我猜测外部服务器/API 发生了一些变化。

我正在使用 PHP7。

php curl http file-get-contents php-curl

5
推荐指数
1
解决办法
308
查看次数

在 Powershell 中,处理超过 1GB 的文件时收到“OutOfMemoryException”

我在加载到数据仓库之前进行了一些文件清理,并遇到了文件大小调整问题:

(Get-Content -path C:\Workspace\workfile\myfile.txt -Raw) -replace '\\"', '"' | Set-Content C:\Workspace\workfile\myfileCLEAN.txt
Run Code Online (Sandbox Code Playgroud)

我的文件大约有2GB。我收到以下错误,但不知道如何纠正。

Get-Content:抛出“System.OutOfMemoryException”类型的异常,........

我不是编码员,但我确实喜欢学习,所以正在构建自己的数据仓库。因此,如果您确实做出回应,请记住我的经验水平:)

powershell file-get-contents

5
推荐指数
1
解决办法
1917
查看次数

PHP file_get_contents() SSL 操作失败,代码为 1

我想用“我是个白痴”作为这个问题的开头,但我真的需要一些帮助。

我有一个由 GoDaddy 托管的 PHP 网站。在过去的几年里,我一直使用 file_get_contents() 将一个简单的 XML 页面读取到我网站的 mySQL 数据库中。今年一月,我开始收到以下警告。

警告:file_get_contents() [function.file-get-contents]:SSL 操作失败,代码为 1。OpenSSL 错误消息:错误:14077410:SSL 例程:SSL23_GET_SERVER_HELLO:sslv3 警报握手失败

警告:file_get_contents() [function.file-get-contents]:无法启用加密

警告:file_get_contents(https://api.competitionsuite.com/2013-02/Competitions/?o=C35091BF-0F25-4C86-A5AA-C7714E38112C)[function.file-get-contents]:无法打开流

在此之前,我没有该网站的 SSL 证书,因此我从 GoDaddy 购买了基本证书,希望这可以解决该错误,但即使在 HTTPS 网站上,我也会遇到相同的错误。

这是我的代码片段,但如果我需要提供更多内容,请告诉我。

//read XML
$url = 'https://api.competitionsuite.com/2013-02/Competitions/?o=C35091BF-0F25-4C86-A5AA-C7714E38112C';
$context  = stream_context_create(array('http' => array('header' => 'Accept: application/xml')));
                            
$xml = file_get_contents($url, false, $context);
$xml = simplexml_load_string($xml);
Run Code Online (Sandbox Code Playgroud)

如果有人有空闲时间,我真的可以使用一些指导。TIA

php xml ssl simplexml file-get-contents

5
推荐指数
0
解决办法
1万
查看次数

PHP - file_get_contents()在字符串中有变量?

我收到此订单时,我试图通过PHPMailer向客户发送电子邮件.我尝试这样做:

        $email_page = file_get_contents("email_order_html.php?order=$order_id");
Run Code Online (Sandbox Code Playgroud)

我想把这个页面的内容作为字符串,所以我可以用PHPMailer发送它,但是这个函数不会执行页面,因为它中的变量$ order_id,我该如何解决这个问题?

php file-get-contents phpmailer

4
推荐指数
1
解决办法
1万
查看次数