哪位大哥用过fsockopen函数

zhourongbiao 2004-07-07 12:06:57
哪位大哥用过fsockopen函数,它执行的效果和php的配置是不是有关?
我在万网提供的空间中使用该函数和其他网站取得了联系而在新网提供的空间中却不行,很是奇怪.
...全文
186 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
52juanjuan 2004-07-07
  • 打赏
  • 举报
回复
应该不会,要不把你的代码贴出来让大家看看
ice_berg16 2004-07-07
  • 打赏
  • 举报
回复
新网互联的PHP配置
PHP Version 4.1.0

System Linux unix27 2.4.7-10 #1 Thu Sep 6 17:27:27 EDT 2001 i686 unknown
Build Date Apr 5 2002
Configure Command './configure' '--prefix=/usr' '--with-mysql=/usr/local/mysql' '--enable-force-cgi-redirect' '--enable-safe-mode'
Server API CGI
Virtual Directory Support disabled
Configuration File (php.ini) Path /usr/local/Zend/etc/php.ini
ZEND_DEBUG disabled
Thread Safety disabled
xuzuning 2004-07-07
  • 打赏
  • 举报
回复
如果是报fsockopen函数未定义,那么就是被禁用了
zhourongbiao 2004-07-07
  • 打赏
  • 举报
回复
先谢谢诸位了!
zhourongbiao 2004-07-07
  • 打赏
  • 举报
回复
我使用了一个类:
require("include/http.class.php");

$thisHttp = new cHTTP();
$thisHttp->getPage("http://www.ytht.net");
$content = $thisHttp->getContent();
if ( $content != "" )
echo $content;
else
echo "test";
该类相关代码为:
class cHTTP {

var $referer;
var $postStr;

var $retStr;
var $theData;

var $theCookies;
var $proxy_host="";
var $proxy_port="0";


function clsHTTP(){

}


function setReferer($sRef){
$this->referer = $sRef;
}


function addField($sName, $sValue){
$this->postStr .= $sName . "=" . $this->HTMLEncode($sValue) . "&";
}
function clearFields(){
$this->postStr = "";
}

function checkCookies(){
$cookies = explode("Set-Cookie:", $this->theData );
$i = 0;
if ( count($cookies)-1 > 0 ) {
while(list($foo, $theCookie) = each($cookies)) {
if (! ($i == 0) ) {
@list($theCookie, $foo) = explode(";", $theCookie);
list($cookieName, $cookieValue) = explode("=", $theCookie);
@list($cookieValue, $foo) = explode("\r\n", $cookieValue);
$this->setCookies(trim($cookieName), trim($cookieValue));
}
$i++;
}
}
}

function setCookies($sName, $sValue){

$total = count(explode($sName, $this->theCookies));

if ( $total > 1 ) {
list($foo, $cValue) = explode($sName, $this->theCookies);
list($cValue, $foo) = explode(";", $cValue);

$this->theCookies = str_replace($sName . $cValue . ";", "", $this->theCookies);
}
$this->theCookies .= $sName . "=" . $this->HTMLEncode($sValue) . ";";
}

function getCookies($sName){
@list($foo, $cValue) = explode($sName, $this->theCookies);
@list($cValue, $foo) = explode(";", $cValue);
return substr($cValue, 1);
}

// Cookie format: Name1 = Value1;<NameN = ValueN;>
function getFirstCookieName(){
@list($cValue, $foo) = explode("=", $this->theCookies);
return $cValue;
}

function getFirstCookieValue(){
@list($foo, $cValue) = explode("=", $this->theCookies);
@list($cValue, $foo) = explode(";", $cValue);
return $cValue;
}
//

function clearCookies(){
$this->theCookies = "";
}


function getContent(){
@list($header, $foo) = explode("\r\n\r\n", $this->theData);
@list($foo, $content) = explode($header, $this->theData);
return substr($content, 4);
}

function getHeaders(){
list($header, $foo) = explode("\r\n\r\n", $this->theData);
list($foo, $content) = explode($header, $this->theData);
return $header;
}

function getHeader($sName){
list($foo, $part1) = explode($sName . ":", $this->theData);
list($sVal, $foo) = explode("\r\n", $part1);
return trim($sVal);
}

function postPage($sURL){
$host = "";
$port = "";
if ( $this->proxy_host != "" )
{
$request = $sURL;
$host = $this->proxy_host;
$port = $this->proxy_port;
}
else
{
$sInfo = $this->parseRequest($sURL);
$request = $sInfo['request'];
$host = $sInfo['host'];
$port = $sInfo['port'];
}

$this->postStr = substr($this->postStr, 0, -1); //retira a ultima &

$httpHeader = "POST $request HTTP/1.0\r\n";
// $httpHeader .= "Host: $host\r\n";
// $httpHeader .= "Connection: Close\r\n";
// $httpHeader .= "User-Agent: cHTTP/0.1b (incompatible; M$ sucks; Open Source Rulez)\r\n";
$httpHeader .= "Content-type: application/x-www-form-urlencoded\r\n";
$httpHeader .= "Content-length: " . strlen($this->postStr) . "\r\n";
$httpHeader .= "Referer: " . $this->referer . "\r\n";
$httpHeader .= "Cookie: " . $this->theCookies . "\r\n";

$httpHeader .= "\r\n";
$httpHeader .= $this->postStr;
$httpHeader .= "\r\n\r\n";

$this->theData = $this->downloadData($host, $port, $httpHeader); // envia os dados para o servidor

$this->checkCookies();
}

function getPage($sURL){
if ( $this->proxy_host != "" )
{
$request = $sURL;
$host = $this->proxy_host;
$port = $this->proxy_port;
}
else
{
$sInfo = $this->parseRequest($sURL);
$request = $sInfo['request'];
$host = $sInfo['host'];
$port = $sInfo['port'];
}

$httpHeader = "GET $request HTTP/1.0\r\n";
// $httpHeader .= "Host: $host\r\n";
// $httpHeader .= "Connection: Close\r\n";
$httpHeader .= "User-Agent: cHTTP/0.1b (incompatible; M$ sucks; Open Source Rulez)\r\n";
// $httpHeader .= "Referer: " . $this->referer . "\r\n";
$httpHeader .= "Cookie: " . substr($this->theCookies, 0, -1) . "\r\n";
$httpHeader .= "\r\n\r\n";

$this->theData = $this->downloadData($host, $port, $httpHeader);
}

function parseRequest($sURL){

list($protocol, $sURL) = explode('://', $sURL); // separa o resto
list($host, $foo) = explode('/', $sURL); // pega o host
list($foo, $request) = explode($host, $sURL); // pega o request
@list($host, $port) = explode(':', $host); // pega a porta

if ( strlen($request) == 0 ) $request = "/";
if ( strlen($port) == 0 ) $port = "80";

$sInfo = Array();
$sInfo["host"] = $host;
$sInfo["port"] = $port;
$sInfo["protocol"] = $protocol;
$sInfo["request"] = $request;

return $sInfo;
}

/* changed 06/30/2003 */
function HTMLEncode($sHTML){
$sHTML = urlencode($sHTML);
return $sHTML;
}

function downloadData($host, $port, $httpHeader){
echo "$host,$port<br>"; // FOR TEST ONLY
$fp = @fsockopen($host, $port);
$retStr = "";
if ( $fp ) {
fwrite($fp, $httpHeader);
echo "write!"; // FOR TEST ONLY
while(! feof($fp)) {
echo "read!"; // FOR TEST ONLY
$retStr .= fread($fp, 1024);
}
fclose($fp);
}
else
echo "open sock wrong!"; // FOR TEST ONLY
return $retStr;
}

} // class

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧