<?
$fileName = "网上连邦.url";
$fp = fopen($fileName, "r");
$connect = fread($fp, filesize($fileName));
fclose;echo $connect;
/*output:
[DEFAULT] BASEURL=http://www.federal.com.cn/ [DOC#622] BASEURL=http://www.federal.com.cn/include/cart2.asp?uid= ORIGURL=/include/cart2.asp?uid= [InternetShortcut] URL=http://www.federal.com.cn/ Modified=50430622858CC2018F
*/
?>
$fileName = "网上连邦.url";
$fp = fopen($fileName, "r");
$connect = fread($fp, filesize($fileName));
fclose;echo $connect;
/*output:
[DEFAULT] BASEURL=http://www.federal.com.cn/ [DOC#622] BASEURL=http://www.federal.com.cn/include/cart2.asp?uid= ORIGURL=/include/cart2.asp?uid= [InternetShortcut] URL=http://www.federal.com.cn/ Modified=50430622858CC2018F
*/
?>
解决方案 »
- 先上传图片并生成缩略图,但是不提交表单,怎么做呢?
- javascript中window.showModalDialog的参数问题
- 请问这段代码哪里错了?
- 操作数据库报错: Access denied for user 'SYSTEM'@'localhost'
- php简单页面跳转问题
- 想问一下大家,我在自己的网站上怎么实现让消费者在本站选择商品后点提交按钮时再到陶宝上交费?
- 一个遍历文件代码的疑问?
- 请问一个很急的关于显示数据的问题,我的分都没有了,以后给大家补上,谢谢~
- php 有得到字符串中一个字符的函数马?
- 请问一个关于数组的问题?急!谢谢!
- 如何在IE中内嵌打开EXCEL文档??
- php用什么引入网页?类似asp中的<!--#include file="config.asp" -->的功能。
如何解析下面的html到一个变量中呢?key自定.
----------------------------------------------------
<!DOCTYPE NETSCAPE-Book-file-1>
<!-- This is an automatically generated file.
It will be read and overwritten.
Do Not Edit! -->
<TITLE>Books</TITLE>
<H1>Books</H1>
<DL><p>
<DT><H3 FOLDED ADD_DATE="1064990828">下载</H3>
<DL><p>
<DT><H3 FOLDED ADD_DATE="1064992390">下载1</H3>
<DL><p>
</DL><p>
<DT><H3 FOLDED ADD_DATE="1064992468">下载2</H3>
<DL><p>
<DT><A HREF="http://search2.onlinedown.net/search.asp?page=30&keyword=e" ADD_DATE="1064396428" LAST_VISIT="1064992501" LAST_MODIFIED="1064396433">华军软件园-搜索引擎</A>
<DT><A HREF="http://www.skyhits.com/02/news03/game_jindian.htm" ADD_DATE="1057718758" LAST_VISIT="1064992508" LAST_MODIFIED="1057718765">经典小游戏下载</A>
</DL><p>
<DT><H3 FOLDED ADD_DATE="1064992486">下载3</H3>
<DL><p>
</DL><p>
<DT><A HREF="http://like.nease.net/lformat.htm" ADD_DATE="1057846802" LAST_VISIT="1064990937" LAST_MODIFIED="1057846807"> □ 低格软件下载</A>
<DT><A HREF="http://www.microsoft.com/downloads/search.aspx?displaylang=zh-cn&categoryid=5" ADD_DATE="1059272335" LAST_VISIT="1064990915" LAST_MODIFIED="1059272352">Microsoft 下载中心:Macintosh & 其它平台</A>
<DT><A HREF="http://bbs.bird365.com/cgi-bin/topic.cgi?forum=2&topic=1456&show=0" ADD_DATE="1060831422" LAST_VISIT="1064990882" LAST_MODIFIED="1060831445">影视下载 ---『 影视共享区 』 - ★★★8月14日全部测试可下电影,精彩奉献!★★★</A>
<DT><A HREF="http://bbs.100bao.com/dispbbs.asp?boardID=3&ID=10120" ADD_DATE="1065091880" LAST_VISIT="1064990852" LAST_MODIFIED="1065091882">百宝论坛--[下载](10月1日修改)论坛ftp(我会及时换密码)</A>
<DT><A HREF="http://www.52z.com/soft/781.html" ADD_DATE="1064297938" LAST_VISIT="1064990864" LAST_MODIFIED="1064297944">飞翔下载 = RedHat?linux?9.0?正式发布版 9.0</A>
</DL><p>
<DT><H3 FOLDED ADD_DATE="1064990996">手册</H3>
<DL><p>
<DT><A HREF="http://www.phpe.net/site_search.php?search=cache" ADD_DATE="1062146674" LAST_VISIT="1064991020" LAST_MODIFIED="1062146677">Exceed PHP - 超越PHP -- 站点搜索</A>
<DT><A HREF="http://www.tisin.com/school/homepage/jscript/lesson/learn3/tech/js/stmt4.htm#1016007" ADD_DATE="1062377097" LAST_VISIT="1064991017" LAST_MODIFIED="1062377101">JavaScript语言参考手册_语句</A>
<DT><A HREF="http://www.wy1997.com/sailflying/learn/paixu.htm" ADD_DATE="1064477075" LAST_VISIT="1064991012" LAST_MODIFIED="1064477087">XML卷之实战锦囊(1):动态排序</A>
<DT><A HREF="http://art.yesky.com/" ADD_DATE="1063337628" LAST_VISIT="1064991044" LAST_MODIFIED="1063337634">天极-设计在线-美工教室</A>
</DL><p>
<DT><H3 FOLDED ADD_DATE="1064990951">电影</H3>
<DL><p>
<DT><A HREF="http://movie.59178.com/show.asp?id=7972" ADD_DATE="1060932158" LAST_VISIT="1064990969" LAST_MODIFIED="1060932166">在线电影,在线影院,免费电影,电影下载--绝代双骄,主要演员-苗侨伟 梁朝伟 关礼杰 刘美娟 黎美娴,电影海报,在线收看</A>
<DT><A HREF="http://bbs.bird365.com/dispbbs.asp?boardID=2&ID=5" ADD_DATE="1061567203" LAST_VISIT="1064990977" LAST_MODIFIED="1061602524">布谷鸟综合论坛-娱乐时代-电影时代-浏览:风.语特供下载!8.23供应!</A>
</DL><p>
<DT><H3 FOLDED ADD_DATE="1064991052">论坛</H3>
<DL><p>
<DT><A HREF="http://expert.csdn.net/expert/forum.asp" ADD_DATE="1055987696" LAST_VISIT="1064991075" LAST_MODIFIED="1055987696">欢迎来到CSDN新版论坛</A>
</DL><p>
<DT><H3 FOLDED ADD_DATE="1055891971">链接</H3>
<DL><p>
<DT><A HREF="http://www.microsoft.com/isapi/redir.dll?prd=ie&ar=windowsmedia" ADD_DATE="1055892079" LAST_VISIT="1064991233" LAST_MODIFIED="1055892079">Windows Media</A>
<DT><A HREF="http://www.microsoft.com/isapi/redir.dll?prd=ie&ar=windows" ADD_DATE="1055892079" LAST_VISIT="1064991233" LAST_MODIFIED="1055892079">Windows</A>
<DT><A HREF="http://www.microsoft.com/isapi/redir.dll?prd=ie&ar=hotmail" ADD_DATE="1055892079" LAST_VISIT="1064991233" LAST_MODIFIED="1055892079">免费 Hotmail</A>
<DT><A HREF="http://www.microsoft.com/isapi/redir.dll?prd=ie&pver=6&ar=CLinks" ADD_DATE="1055892079" LAST_VISIT="1064991233" LAST_MODIFIED="1055892079">自定义链接</A>
</DL><p>
<DT><A HREF="http://server/~yjj/forum/" ADD_DATE="1055912919" LAST_VISIT="1064990809" LAST_MODIFIED="1055912982">http--server-~yjj-forum-</A>
<DT><A HREF="http://www.wfinfo.net.cn/" ADD_DATE="1058889954" LAST_VISIT="1064990810" LAST_MODIFIED="1058889955">http--wf-www.sd.cninfo.net-</A>
<DT><A HREF="http://www.yangning.com/cgi-bin/topic.cgi?forum=1&topic=70&show=0" ADD_DATE="1064837339" LAST_VISIT="1064990831" LAST_MODIFIED="1064837345">『VC++编程软件工程 』 - 胡言乱语</A>
<DT><A HREF="http://member.netease.com/~rchan/convlite_tiandown.html" ADD_DATE="1063015294" LAST_VISIT="1064990811" LAST_MODIFIED="1063015296">内码转换大师(ConvertLite) 安装及使用教程</A>
<DT><A HREF="http://www2.yetibb.com/sms/main.asp" ADD_DATE="1063103581" LAST_VISIT="1064990811" LAST_MODIFIED="1063103584">宝宝短信在线 - sms.yetibb.com</A>
<DT><A HREF="http://211.70.120.32:61/t2526/dw/19r.htm" ADD_DATE="1059268391" LAST_VISIT="1064990810" LAST_MODIFIED="1059268394">实战win2000-XP下本机调试ASP、CGI、PHP</A>
<DT><A HREF="http://bingle.pku.edu.cn/" ADD_DATE="1058770645" LAST_VISIT="1064990810" LAST_MODIFIED="1058770647">欢迎访问北京大学天网FTP,WWW文件搜索引擎</A>
<DT><A HREF="http://ayqfg.y365.com/loveexam4.htm" ADD_DATE="1061990038" LAST_VISIT="1064990811" LAST_MODIFIED="1061990042">爱情测验速算恋爱成功率</A>
<DT><A HREF="http://www.yesky.com/20030312/1656569.shtml" ADD_DATE="1064829888" LAST_VISIT="1064990831" LAST_MODIFIED="1064829889">用VC把TXT文件转化成HTM文件</A>
<DT><A HREF="http://mp3.baidu.com/wstsearch?tn=baidump3&ct=134217728&word=%B6%E9%C2%E4%CC%EC%CA%B9&lm=-1&pn=0" ADD_DATE="1059644384" LAST_VISIT="1064990810" LAST_MODIFIED="1059644385">百度MP3搜索_堕落天使</A>
<DT><A HREF="http://www.59178.net/" ADD_DATE="1061920135" LAST_VISIT="1064990811" LAST_MODIFIED="1061920139">精彩网站网址之家</A>
<DT><A HREF="http://expert.csdn.net/Expert/topic/2074/2074554.xml?temp=9.830874E-02" ADD_DATE="1059196619" LAST_VISIT="1064990810" LAST_MODIFIED="1059196822">谁能帮我写一个和自定义函数来统计注册会员总数的代码</A>
</DL><p>
---------------------------------------------------------------------------------
-------------------------------------------------------
include_once "hy_favorite.class.php"; //这个文件是大家要帮我写的类,传入内容($content)
$fp = fopen('yjj1.htm', "r");
$content = fread($fp, filesize('yjj1.htm')); //此文件的内容是上面的内容
$hy_fa = new hy_favorite($content); //新建类
$data = $hy_favorite->get(); //转化
print "<pre>";
print_r($data);
print "</pre>";
-----------------------------------------------------------类hy_favorite.class.php
----------------------------------------------------------
class hy_favorite { var $content; function hy_favorite($content='')
{
$this->content = $content; } function get()
{
//谢谢帮忙,在这里写
//$regs = preg_match_all("/<(.*)>.*<\/\1>/ig", $this->content, $regs);
pre($regs);
}}
----------------------------------------------------------
function get() {
//谢谢帮忙,在这里写
preg_match_all("/<(\w+)(.*)>(.*)<\/\\1>/iU", $this->content, $regs);
return $regs;
}
get($aa)//get加上一个参数$aa,$aa可以是数组
这个我想了一个笨方法用循环调用~~一行一行的解析~
if(is_array($args)) {
froeach($args as $tag)
$ar[] = $this->get($tag);
return $ar;
}else {
preg_match_all("/<(".$args")(.*)>(.*)<\/\\1>/iU", $this->content, $regs);
return $regs;
}
}
if(is_array($args)) {
foreach($args as $tag)
$ar[] = $this->get($tag);
return $ar;
}else {
preg_match_all("/<(".$args.")(.*)>(.*)<\/\\1>/iU", $this->content, $regs);
return $regs;
}
}
哦,有两处写错了。
这种错误自己改改就是了!
能再写的完整一点吗,也许是我说的'解析'的意思,不是很完整,直接说解析后的生成结果吧~
大家一起做呵,很好玩的问题呵~~
生成结果是无限分级的变量,并不是一切都得出来,不分上下级,是哪一级的就在哪一个里那建一个sub子变量,存放这一级下的变量
生成类似的就行,不用一样的:真诚的谢谢你坚持不懈的为我在解释:
Array
(
[0] => Array
(
[tagName] => H3
[Text] => >下载
[Attrs] => Array
(
[FOLDED] =>
[ADD_DATE] => 1064990828
) [sub] => Array
(
[0] => Array
(
[tagName] => H3
[Text] => >下载1
[Attrs] => Array
(
[FOLDED] =>
[ADD_DATE] => 1064992390
) ) [1] => Array
(
[tagName] => H3
[Text] => >下载2
[Attrs] => Array
(
[FOLDED] =>
[ADD_DATE] => 1064992468
) [sub] => Array
(
[0] => Array
(
[tagName] => A
[Text] => >华军软件园-搜索引擎
[HREF] => http://search2.onlinedown.net/search.asp?page=30&keyword=e
[ADD_DATE] => 1064396428
[LAST_VISIT] => 1065660130
[LAST_MODIFIED] => 1064396433
) [1] => Array
(
[tagName] => A
[Text] => >经典小游戏下载
[HREF] => http://www.skyhits.com/02/news03/game_jindian.htm
[ADD_DATE] => 1057718758
[LAST_VISIT] => 1065660130
[LAST_MODIFIED] => 1057718765
) ) ) [2] => Array
(
[tagName] => H3
[Text] => >下载3
[Attrs] => Array
(
[FOLDED] =>
[ADD_DATE] => 1064992486
) ) [3] => Array
(
[tagName] => A
[Text] => > □ 低格软件下载
[Attrs] => Array
(
[HREF] => http://like.nease.net/lformat.htm
[ADD_DATE] => 1057846802
[LAST_VISIT] => 1065658414
[LAST_MODIFIED] => 1057846807
) )
.
.
.
.
.
.
这是我写的一个,虽然能大体解出来,但算法太烂,不合格,贴出来,大家看看'运行结果':
yjj1.htm文件在上面已经贴出来了,不再贴了.
test.php
---------------------------------------------
<?php
function pre($array)
{
print "<pre>";
print_r($array);
print "</pre>";
}
function area($content)
{
$content = preg_replace("/\"/", "\\\"", $content);
print print "<textarea name=aa rows=100 cols=100>$content</textarea>";
}
include "./favorite.class.php";
$array= array(array('1','2'),array(3,4));
$fp = fopen('yjj1.htm', "r");
$content = fread($fp, filesize('yjj1.htm'));
$hy_favorite = new hy_favorite($content);
$data = $hy_favorite->get();
pre($data);
--------------------------------------------------------------------favorite.class.php
--------------------------------------------------------------------
<?php
class hy_favorite { var $content = '';
var $num = 0; function hy_favorite($content='')
{
$this->content = $content;
$this->num = $num;
} function get($dl_array = array())
{
$buffer = $dl_array;
if (!$this->num) {
$buffer = $this->content;
$buffer = explode("\r\n", $buffer);
for ($i=0; $i<7; $i++) {
unset($buffer[$i]);
}
}
$flag = 0;
$flag_ = 0;
$s = 0;
$flag_next = 0;
$node = 0;
$s_array = array();
$current_dt_name = '';
foreach ($buffer as $key => $value) {
if ($flag) {
$s_array[$s][] = $value;
$node = 1;
}
if (preg_match("/<DL>/", $value) && !$flag) {
$this->s_array[$s][] = $value;
$flag++;
$flag_++;
$node = 1;
} else if (preg_match("/<DL>/", $value)) {
$flag++;
$flag_++;
} if (preg_match("/<\/DL>/", $value)) {
$flag--;
$flag_next = 1;
}
if ($flag == 0 && $flag_next) {
$s_array[$s]['dl_num'] = $flag_;
$flag_ = 0;
$s++;
}
$flag_next = 0;
if (!$node) {
$s_array['no_dl'][] = $value;
}
$node = 0;
}
$s_bak = 0;
foreach ($s_array as $key => $value) {
if ($key && $key == 'no_dl') {
$temp = '';
foreach ($value as $key1 => $value1) {
$tag = "A";
$tagkey = sql_regcase($tag);
$buffer = eregi_replace("<$tagkey ","\n<$tag ",$value1);
$ar = split("\n",$buffer);
foreach($ar as $v) {
$p = array();
if(! eregi("<$tagkey ",$v)) {
continue;
}
eregi("<$tagkey ([^>]*)((.*)</$tagkey)?" ,$v ,$regs);
$p['tagName'] = strtoupper($tag);
if ($regs[3]) {
$p['Text'] = substr($regs[3], 1);
}
$s = trim(eregi_replace("[ \t]+"," ",$regs[1]))." ";
$s = eregi_replace(" *= *","=",$s); $a = split(" ",$s);
for($i=0;$i<count($a);$i++) {
$ch = array();
if(eregi("=[\"']",$a[$i])) {
$j = $i+1;
while(!eregi("[\"']$",$a[$i])) {
$a[$i] .= " ".$a[$j];
unset($a[$j]);
}
}
}
foreach($a as $k) {
$name = strtoupper(strtok($k,"="));
$value = strtok("\0");
if(eregi("^[\"']",$value))
$value = substr($value,1,-1);
if($name)
$p['Attrs'][$name] = $value;
}
$pp[] = $p;
} if (preg_match("/FOLDED/", $value1)) {
$temp = $value1;
$tag = "H3";
$tagkey = sql_regcase($tag);
$buffer = eregi_replace("<$tagkey ","\n<$tag ",$value1);
$ar = split("\n",$buffer);
foreach($ar as $v) {
$p1 = array();
if(! eregi("<$tagkey ",$v)) {
continue;
}
eregi("<$tagkey ([^>]*)((.*)</$tagkey)?" ,$v ,$regs);
$p1['tagName'] = strtoupper($tag);
if ($regs[3]) {
$p1['Text'] = substr($regs[3], 1);
}
$s = trim(eregi_replace("[ \t]+"," ",$regs[1]))." ";
$s = eregi_replace(" *= *","=",$s); $a = split(" ",$s);
for($i=0;$i<count($a);$i++) {
$ch = array();
if(eregi("=[\"']",$a[$i])) {
$j = $i+1;
while(!eregi("[\"']$",$a[$i])) {
$a[$i] .= " ".$a[$j];
unset($a[$j]);
}
}
}
foreach($a as $k) {
$name = strtoupper(strtok($k,"="));
$value1 = strtok("\0");
if(eregi("^[\"']",$value1))
$value1 = substr($value1,1,-1);
if($name)
$p1['Attrs'][$name] = $value1;
}
}
if (isset($s_array[$s_bak])) {
if (isset($s_array[$s_bak]['dl_num']) && $s_array[$s_bak]['dl_num'] > 1) {
$temp_num = count($s_array[$s_bak]);
for ($i=0; $i<1; $i++) {
if (preg_match("/<DL>/", $s_array[$s_bak][$i])) {
unset($s_array[$s_bak][$i]);
break;
}
}
$num_ = $temp_num - 1;
for ($i=$temp_num; $i>$num_; $i--) {
if (preg_match("/<\/DL>/", $s_array[$s_bak][$i])) {
unset($s_array[$s_bak][$i]);
break;
}
}
$this->num++;
unset($s_array[$s_bak]['dl_num']);
$p1['sub'] = $this->get($s_array[$s_bak]); } else {
$p1_s = 0;
foreach ($s_array[$s_bak] as $key2 => $value2) {
$tag = "A";
$tagkey = sql_regcase($tag);
$buffer = eregi_replace("<$tagkey ","\n<$tag ",$value2);
$ar = split("\n",$buffer);
foreach($ar as $v) { if(! eregi("<$tagkey ",$v)) {
continue;
}
eregi("<$tagkey ([^>]*)((.*)</$tagkey)?" ,$v ,$regs);
$p1['sub'][$p1_s]['tagName'] = strtoupper($tag);
if ($regs[3]) {
$p1['sub'][$p1_s]['Text'] = substr($regs[3], 1);
}
$s = trim(eregi_replace("[ \t]+"," ",$regs[1]))." ";
$s = eregi_replace(" *= *","=",$s); $a = split(" ",$s);
for($i=0;$i<count($a);$i++) {
$ch = array();
if(eregi("=[\"']",$a[$i])) {
$j = $i+1;
while(!eregi("[\"']$",$a[$i])) {
$a[$i] .= " ".$a[$j];
unset($a[$j]);
}
}
}
foreach($a as $k) {
$name = strtoupper(strtok($k,"="));
$value2 = strtok("\0");
if(eregi("^[\"']",$value2))
$value2 = substr($value2,1,-1);
if($name)
$p1['sub'][$p1_s][$name] = $value2;
}
$p1_s++;
}
}
}
$s_bak++;
}
$pp[] = $p1;
}
}
}
}
return $pp;
}}
------------------------------------------------------------------------------