phpopen
利用函数function_exists();
可以查看是否存在某一个函数,
bool function_exists ( string $function_name
);
其得出的结果是BOOL值,
如果为1或者是TRUE,代表开启了;
如果为0或者FALSE,代表关闭了。
Ⅱ php开启fsockopen函数
1.方法一:
第一步:
php.ini文件中查找
allow_url_fopen = On
使其值为On
第二步:
php.ini文件中查找
extension=php_openssl.dll
如果前面有分号,去掉分号
第三步:
重启web服务器,apache或IIS
2.还有一种情况,也就是方法二:
1. vi php.ini
找到 allow_url_fopen 这个参数设置成 On,即
allow_url_fopen = On
2. 让你的php支持 opensll扩展。
默认,是没有openssl扩展的,只能重新编译安装。
yum install openssl openssl-devel
cd /usr/local/src/php-5.2.14/ext/openssl
/usr/local/php/bin/phpize
./configure –with-openssl –with-php-config=/usr/local/bin/php-config
make && make install
看提示,把编译成的openssl.so 拷贝到你在php.ini 中指定的 extension_dir 下
3. vi php.ini
加入
extension=openssl.so
4. 重启web server
Ⅲ php使用fsockopen建立长连接接收数据的疑问
你这个代码逻辑是错误的,且不说什么长连接,但看你
$len = fwrite( $fp, $out ); 发送一段信息出去,那么这个$len就一定有效,那么
while($len){
//这里如果不在特定的情况重置$len的话,这个while就是个死循环!
}
抛开这个逻辑错误,你的本意是发送一个信息,服务端有返回数据就接收,这样的代码逻辑能实现你的想法么?你看看,你发送了一次,就依你发送的为标准让整个逻辑进入了死循环的读取过程,这还是服务端有响应数据便接收么?分明是你有发送数据便无限接收。
你还是梳理一下思路再写。