jjzjj

CURLOPT_PROGRESSFUNCTION

全部标签

PHP cURL,使用 CURLOPT_RETURNTRANSFER 时内存泄漏

下面的代码在一个循环中。每个循环将$URI更改为新地址。我的问题是每次通过都会占用越来越多的内存。$ch=curl_init();curl_setopt($ch,CURLOPT_URL,$URI);curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);curl_setopt($ch,CURLOPT_HEADER,0);$res=curl_exec($ch);curl_close($ch);我终于发现,如果我注释掉CURLOPT_RETURNTRANSFER行,泄漏就会停止。我使用“CURLOPT_RETURNTRANSFER,true”,这样我就可以

php - 请求重定向,即使 CURLOPT_FOLLOWLOCATION 设置为 FALSE

我是PHP新手。我搜索了StackOverflow并按照类似问题的答案中的说明进行操作。但是,这些说明对我不起作用。问题是:我正在尝试使用PHPcURL获取HTML进行解析。http://actas.rfef.es/actas/NPortada这是一个可公开访问的页面。当我通过浏览器的地址栏请求页面时,它工作正常。但是,如果请求是通过cURL发出的,我将被重定向到http://actas.rfef.es/actas/NLogin(0字节空白页)。我认为useragent可能是个问题并将curl的用户代理值和followlocation设置为false,但它仍然重定向!这是我的代码:$h

php - 如果 CURLOPT_RETURNTRANSFER 设置为真,则 cURL PHP 无法正常工作

我尝试通过cURLforPHP提取站点的HTML。通常它工作正常,但有一些网站响应为空。例如,如果我对URLalditalk.de执行以下脚本:$ch=curl_init();curl_setopt($ch,CURLOPT_URL,'http://www.alditalk.de/');curl_setopt($ch,CURLOPT_USERAGENT,"Mozilla/5.0(Windows;U;WindowsNT5.1;en-US;rv:1.8.1.1)Gecko/20061204Firefox/4");curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,3

php - 如何全局设置或规避PHP中的CURLOPT_CONNECTTIMEOUT?

有没有办法为所有cURL请求全局设置CURLOPT_CONNECTTIMEOUT?我有一个问题,在升级到PHP7.2之后,一些软件的cURL现在会在10秒连接超时时失败,而之前它们不会。我不能确切地说出是什么改变了这种行为,但我需要以某种方式全局设置a)导致它现在超时的原因,或者b)增加超时限制。任何php.ini设置都会影响这个?编辑:设置default_socket_timeout似乎对此没有影响。编辑:仅供引用,具有更多Wordpress细节的相同问题:https://wordpress.stackexchange.com/questions/330013/curl-28-err

php - 使用 CURLOPT_POSTFIELDS 发布文件时文件为空

我正在尝试使用RESTful网络服务上传文件,如下所示:$filename="pathtofile/testfile.txt";$handle=fopen($filename,"r");$filecontents=fread($handle,filesize($filename));fclose($handle);$data=array('name'=>'testfile.txt','file'=>$filecontents);$client=curl_init($url);curl_setopt($client,CURLOPT_POST,true);curl_setopt($clie

PHP curl : Max Length on CURLOPT_USERPWD?

我在PHP中有一个使用cURL的简单GET请求。它使用基本身份验证进行身份验证。然而,当{username}:{password}超过266个字符时,它似乎被截断了。我到处看,但没有找到任何说明这一点的文件。只有我吗?$data=curl_init($url);curl_setopt($data,CURLOPT_USERPWD,$username.":".$password);curl_setopt($data,CURLOPT_HTTPAUTH,CURLAUTH_ANY);$results=curl_exec($data);echo$results;curl_close($data);

PHP curl 如何在使用代理时检索 header 。 CURLOPT_HEADERFUNCTION?

我正在使用这样的代理连接到一个站点:$curl=curl_init();curl_setopt($curl,CURLOPT_PROXY,$proxy);curl_setopt($curl,CURLOPT_URL,$url);curl_setopt($curl,CURLOPT_POST,1);curl_setopt($curl,CURLOPT_POSTFIELDS,$data);curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);curl_setopt($curl,CURLOPT_HEADER,TRUE);$result=curl_exec($curl

php - CURLOPT_TIMEOUT 根本不工作 (php)

我正在使用curl并正确设置所有参数(据我所知)但CURLOPT_TIMEOUT被忽略并允许无限循环。这是我的Curl请求的配置:$user_agent='Mozilla/5.0(WindowsNT6.1;rv:8.0)Gecko/20100101Firefox/8.0';$options=array(CURLOPT_CUSTOMREQUEST=>"GET",//setrequesttypepostorgetCURLOPT_POST=>false,//settoGETCURLOPT_USERAGENT=>$user_agent,//setuseragentCURLOPT_COOKIEF

php - CURLOPT_FILE、curl_multi_exec 和 fclose

我构建了一个curl类,可以使用curl_multi_init并行下载图像。下载功能如下publicfunctiondownload(AbstractRequest$request,$f){//Initiateanewcurl$ch=curl_init();//Setcurloptionscurl_setopt_array($ch,[CURLOPT_URL=>$request->getUrl(),CURLOPT_FILE=>$f,CURLOPT_TIMEOUT=>99,]);//Addtocurlmultihandlecurl_multi_add_handle($this->multi

PHP curl : CURLOPT_URL, CURLOPT_POST 和 CURLOPT_POSTFIELDS

如果我有一个如下所示的URL:$url='http://domain.com/?foo=bar';然后执行curl如下:$resource=curl_init();curl_setopt($resource,CURLOPT_URL,$url);curl_setopt($resource,CURLOPT_RETURNTRANSFER,1);$result=curl_exec($resource);curl_close($resource);我了解我通过GET(默认)发出此请求。现在,如果我在同一场景中设置以下选项:curl_setopt($resource,CURLOPT_POST,1)