再问,我想把一个网页的某一部份内容链接到自己的网页上面,请问这能行吗? 例如我想把“CSDN.NET”首页中的“头条新闻”这一块链接到自己的网页上,并假设CSDN首页加了密,并知道他的帐号密码,而且同一帐号不能在两台机器同时登陆。能行吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 怎么又问,下面的不行吗?==================================文件名:csdn.inc.php<?php/* * filename=csdn.inc.php * 用法:可将代码直接复制过去,也可以用include("csdn.inc.php"); */error_reporting (E_ALL);$service_port = getservbyname ('www', 'tcp');$address = gethostbyname ('www.csdn.net');$socket = socket_create (AF_INET, SOCK_STREAM, 0);$result = socket_connect ($socket, $address, $service_port);if ($result < 0) { $the_info = "socket_connect() failed.\nReason: ($result) " . socket_strerror($result) . "\n";} else { $the_info = "OK.\n";}$in = "GET / HTTP/1.0\r\nHost: www.csdn.net\r\n\r\n";$out = '';$the_contect = '';socket_write ($socket, $in, strlen ($in));for ($i = 0; $i < 50; $i++) { $out = socket_read($socket,2048); if($i>5)$the_contect .= $out;}$the_contect = strstr($the_contect,"<!--头条信息");$me = explode("\n",$the_contect);$contect="";for ($i = 13; $i < 200; $i++) { if(ereg("</td></tr>", $me[$i])) break; $contect .= $me[$i];}echo $contect;socket_close ($socket);?>============================== netvt(唯她)的代码直接用有链接路径的问题。下面的代码是我帮netvt(唯她)改进以后的。谁想用直接调用就可以。<?php/* * filename=csdn.inc.php * 用法:可将代码直接复制过去,也可以用include("csdn.inc.php"); */error_reporting (E_ALL);$service_port = getservbyname ('www', 'tcp');$address = gethostbyname ('www.csdn.net');$socket = socket_create(AF_INET, SOCK_STREAM, 0);$result = socket_connect ($socket, $address, $service_port);if ($result < 0) { $the_info = "socket_connect() failed.\nReason: ($result) " . socket_strerror($result) . "\n";} else { $the_info = "OK.\n";}$in = "GET / HTTP/1.0\r\nHost: www.csdn.net\r\n\r\n";$out = '';$the_contect = '';socket_write ($socket, $in, strlen ($in));for ($i = 0; $i < 50; $i++) { $out = socket_read($socket,2048); if($i>5)$the_contect .= $out;}$the_contect = strstr($the_contect,"<!--头条信息");$me = explode("\n",$the_contect);$contect="";for ($i = 13; $i < 200; $i++) { if(ereg("</td></tr>", $me[$i])) break; $contect .= $me[$i];}//这里解决链接路径的问题 ^_^$contect = str_replace("href=\"/", "href=\"http://www.csdn.net/", $contect);echo $contect;socket_close ($socket);?> 忘了补充一下,你的PHP必须支持socket。也就是说你如果用的是Windows那么必须把php_sockets.dll加上。 socket要不要下载安装的,如果要那里有得下载? 这样不知道行不行?在一篇文单中看过使用file函数通过http协议读取内容进数组,再根据网页结构。取得数组中相应的值。<?php$lines = file ('http://www.sina.com/');for($i=0; $i < count($lines); $i++){ echo $lines[$i];}?> socket函数已包含在PHP扩展库中! 我的web服务器不支持socket,是不是版本太旧了,我想问一下什么web服务器本版以上才支持socket 不支持socket是很正常的,就如file函数不能穿过代理一样。不要在一棵树上吊死,条条大路通罗马! 修改你的PHP配置(php.ini文件)就可以了.================回复人: allkill(傲气游) ( ) 信誉:100 2003-06-25 15:44:00 得分:0 忘了补充一下,你的PHP必须支持socket。也就是说你如果用的是Windows那么必须把php_sockets.dll加上。 可惜我的电脑不支持socket,还有没有别的办法? netvt(唯她)详细方法是怎样的呢? 我试了不行,出错,php_socket.dll我已打开了;请问怎么回事呢?Fatal error: Call to undefined function: socket_create() in c:\www\main.php on line 13 哦,jscript不行.另socket_create()函数可以在较高版本中使用在低一些的版本中用fsockopen();系列的函数代替.思路同上. 随了socket,真的没有别的办法吗? 读取,排列==! ZEND调试后再打开网页老是显示“连接被重置” wordpress高手,如何解决性能问题。 大二学生想找工作。疑问求解! 有谁用过osCommerce信用卡功能的,急。。。。 字符串截取问题 怎樣在email中顯示圖片? php数据库问题,求助。。。。 php中mysql中图片存储和显示的问题~~~!!!!!再线等~~~~急 如何使数组的2列相加。 传wps文件出错? 请问如何获得当前业面在操作系统中的位置???
==================================
文件名:csdn.inc.php
<?php
/*
* filename=csdn.inc.php
* 用法:可将代码直接复制过去,也可以用include("csdn.inc.php");
*/
error_reporting (E_ALL);
$service_port = getservbyname ('www', 'tcp');
$address = gethostbyname ('www.csdn.net');
$socket = socket_create (AF_INET, SOCK_STREAM, 0);$result = socket_connect ($socket, $address, $service_port);
if ($result < 0) {
$the_info = "socket_connect() failed.\nReason: ($result) " . socket_strerror($result) . "\n";
} else {
$the_info = "OK.\n";
}$in = "GET / HTTP/1.0\r\nHost: www.csdn.net\r\n\r\n";
$out = '';
$the_contect = '';
socket_write ($socket, $in, strlen ($in));for ($i = 0; $i < 50; $i++) {
$out = socket_read($socket,2048);
if($i>5)$the_contect .= $out;
}
$the_contect = strstr($the_contect,"<!--头条信息");
$me = explode("\n",$the_contect);
$contect="";
for ($i = 13; $i < 200; $i++) {
if(ereg("</td></tr>", $me[$i])) break;
$contect .= $me[$i];
}
echo $contect;socket_close ($socket);?>
==============================
谁想用直接调用就可以。
<?php
/*
* filename=csdn.inc.php
* 用法:可将代码直接复制过去,也可以用include("csdn.inc.php");
*/
error_reporting (E_ALL);
$service_port = getservbyname ('www', 'tcp');
$address = gethostbyname ('www.csdn.net');
$socket = socket_create(AF_INET, SOCK_STREAM, 0);$result = socket_connect ($socket, $address, $service_port);
if ($result < 0) {
$the_info = "socket_connect() failed.\nReason: ($result) " . socket_strerror($result) . "\n";
} else {
$the_info = "OK.\n";
}$in = "GET / HTTP/1.0\r\nHost: www.csdn.net\r\n\r\n";
$out = '';
$the_contect = '';
socket_write ($socket, $in, strlen ($in));for ($i = 0; $i < 50; $i++) {
$out = socket_read($socket,2048);
if($i>5)$the_contect .= $out;
}
$the_contect = strstr($the_contect,"<!--头条信息");
$me = explode("\n",$the_contect);
$contect="";
for ($i = 13; $i < 200; $i++) {
if(ereg("</td></tr>", $me[$i])) break;
$contect .= $me[$i];
}//这里解决链接路径的问题 ^_^
$contect = str_replace("href=\"/", "href=\"http://www.csdn.net/", $contect);echo $contect;socket_close ($socket);?>
使用file函数通过http协议读取内容进数组,再根据网页结构。取得数组中相应的值。
<?php
$lines = file ('http://www.sina.com/');for($i=0; $i < count($lines); $i++){
echo $lines[$i];
}
?>
不要在一棵树上吊死,条条大路通罗马!
================
回复人: allkill(傲气游) ( ) 信誉:100 2003-06-25 15:44:00 得分:0
忘了补充一下,你的PHP必须支持socket。也就是说你如果用的是Windows那么必须把php_sockets.dll加上。
Fatal error: Call to undefined function: socket_create() in c:\www\main.php on line 13
在低一些的版本中用fsockopen();系列的函数代替.思路同上.