fsockopen成功,fwrite失败的原因有哪些?
经过本地和一台WINDOWS服务器测试都很稳定。
但在LINUX服务器上,fsockopen每次也是成功的,但fwrite却多数都失败,很久才成功一次。。
谁遇到过这样的情况吗。。
另外//注释标记那一部分,谁能解释下。。
代码如下:
- PHP code
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> $matches = parse_url($url); !isset($matches['host']) && $matches['host'] = ''; !isset($matches['path']) && $matches['path'] = ''; !isset($matches['query']) && $matches['query'] = ''; !isset($matches['port']) && $matches['port'] = ''; $host = $matches['host']; $path = $matches['path'] ? $matches['path'].($matches['query'] ? '?'.$matches['query'] : '') : '/'; $port = !empty($matches['port']) ? $matches['port'] : 80; if($post) { $out = "POST $path HTTP/1.0\r\n"; $out .= "Accept: */*\r\n"; $out .= "Accept-Language: zh-cn\r\n"; $out .= "Content-Type: application/x-www-form-urlencoded\r\n"; $out .= "User-Agent: $_SERVER[HTTP_USER_AGENT]\r\n"; $out .= "Host: $host\r\n"; $out .= 'Content-Length: '.strlen($post)."\r\n"; $out .= "Connection: Close\r\n"; $out .= "Cache-Control: no-cache\r\n"; $out .= "Cookie: $cookie\r\n\r\n"; $out .= $post; } else { $out = "GET $path HTTP/1.0\r\n"; $out .= "Accept: */*\r\n"; $out .= "Accept-Language: zh-cn\r\n"; $out .= "User-Agent: $_SERVER[HTTP_USER_AGENT]\r\n"; $out .= "Host: $host\r\n"; $out .= "Connection: Close\r\n"; $out .= "Cookie: $cookie\r\n\r\n"; } $fp = @fsockopen(($ip ? $ip : $host), $port, $errno, $errstr, $timeout); if(!$fp) { return '';//note $errstr : $errno \r\n } else { stream_set_blocking($fp, $block); stream_set_timeout($fp, $timeout);var_dump($fp); @fwrite($fp, $out); //注释标记 /*$status = stream_get_meta_data($fp); if(!$status['timed_out']) { while (!feof($fp)) { if(($header = @fgets($fp)) && ($header == "\r\n" || $header == "\n")) { break; } } $stop = false; while(!feof($fp) && !$stop) { $data = fread($fp, ($limit == 0 || $limit > 8192 ? 8192 : $limit)); $return .= $data; if($limit) { $limit -= strlen($data); $stop = $limit
------解决方案--------------------
检查文件的读写性。
------解决方案--------------------
- PHP code
/* 对于楼主的应用, 这里得到的是TCP套接字的一些信息 */ $status = stream_get_meta_data($fp); /* 这里是检查TCP连接是否超时 */ if(!$status['timed_out']) { /* 如果没有超时, 那么就读取数据, 直到碰到文件结束符 */ while (!feof($fp)) { /* 由于这里是读取HTTP头信息, 空行标识头信息结束, 因此需要break */ if(($header = @fgets($fp)) && ($header == "\r\n" || $header == "\n")) { break; } } /* 这里是读取HTTP的body, 个人认为这里的处理有一些粗糙, 至少先看看HTTP响应头中有没有Content-Length根据它进行处理, 如果没有再如下读取 */ $stop = false; while(!feof($fp) && !$stop) { /* 读取最多8192字节($limit递减) */ $data = fread($fp, ($limit == 0 || $limit > 8192 ? 8192 : $limit)); /* 将读取到的内容连接到返回字符串中 */ $return .= $data; if($limit) { $limit -= strlen($data); $stop = $limit <font color="#e78608">------解决方案-------------------- <div class="clear"> </div></font>

主板上SPDIFOUT连接线序最近我遇到了一个问题,就是关于电线的接线顺序。我上网查了一下,有些资料说1、2、4对应的是out、+5V、接地;而另一些资料则说1、2、4对应的是out、接地、+5V。最好的办法是查看你的主板说明书,如果找不到说明书,你可以使用万用表进行测量。首先找到接地,然后就可以确定其他的接线顺序了。主板vdg怎么接线连接主板的VDG接线时,您需要将VGA连接线的一端插入显示器的VGA接口,另一端插入电脑的显卡VGA接口。请注意,不要将其插入主板的VGA接口。完成连接后,您可以

《Laravel中take和limit的使用方法详解》在Laravel中,take和limit是两个常用的方法,用于在数据库查询中限制返回的记录数。虽然它们的作用类似,但在具体的使用场景中有一些细微的区别。本文将详细解析这两个方法的用法,并提供具体的代码示例。一、take方法在Laravel中,take方法用于限制返回的记录数,通常结合orderBy方法一起

out接口指的是输出接口,in接口指的是输入接口。out接口一般代表着音源线路输出接口,用来接负载,例音箱、耳机等;而in接口一般代表着音源线路输入接口,用来接CD机、手机、MP3、电脑等。

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code<form name="myform"

什么是AMP币?AMP代币是由Synereo团队于2015年创立,作为Synereo平台的主要交易货币。AMP代币旨在通过多种功能和用途,为用户提供更好的数字经济体验。AMP代币的用途AMP代币在Synereo平台中拥有多重角色和功能。首先,作为平台的加密货币奖励系统的一部分,用户能够通过分享和推广内容来获得AMP奖励,这一机制鼓励用户更积极地参与平台的活动。AMP代币还可用于在Synereo平台上推广和传播内容。用户可以通过使用AMP代币提升他们的内容在平台上的曝光率,以吸引更多观众来查看和分

Laravel中take和limit是两种常用的方法,用于限制查询结果集的数量。虽然它们在功能上有一定的相似之处,但在使用方式和一些细节上有所不同。本文将对这两种方法的功能及用法进行详细对比,同时提供具体的代码示例,帮助读者更好地理解它们之间的区别和如何正确地应用。1.take方法take方法是LaravelEloquent查询构建器中

win10系统闪退显示outofmemory,近期很多的用户在使用电脑的时候,出现了这个提示,导致需要经常的重启进行修复,那么这种情况我们应该如何处理,针对这个问题,本期的win10教程就来和广大用户们分享完整操作步骤,希望能够帮助更多的小伙伴解决问题。win10系统闪退显示outofmemory怎么办1、右击桌面上的此电脑,选择选项列表中的“属性”。2、进入到新的窗口界面后,点击左上角的“高级系统设置”选项。3、在打开的窗口中,切换到上方中的“

Java8中引入了StreamAPI,它能够极大地简化对集合的操作。Stream类提供了许多用于操作流的函数式方法,包括过滤、映射、合并等等。其中,limit和skip是用于流操作中限制元素数量的两个函数。一、limit函数limit函数用于限制流中元素的数量,它接受一个long类型的参数n,表示限制的数量。调用limit函数后,返回一个新的流,它仅包含


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

맨티스BT
Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

드림위버 CS6
시각적 웹 개발 도구

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는
