[正则疑难]怎么在preg_match_all中进行行首匹配 类别记录存在一个文件中,然后读取文件,按行读取,对每行进行处理,保存在一个数组里,使用preg_match就可实现 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 例如if ($cgi) { while($line=gzgets($cgi)) { if (strpos($line,"html") == false) continue; if (preg_match("/(.*)正则段/i", $line, $matches)) { $test .= $matches[1].','; } } 很久不写程序了吧?怎么什么都忘了呢?不是有m修饰符吗?m:默认的正则开始"^"和结束"$"只是对于正则字符串如果在修饰符中加上"m",那么开始和结束将会指字符串的每一行:每一行的开头就是"^",结尾就是"$"。 <?php$menustr = <<<EOD66_0_<a href="#" target="_parent">退出DEDECMS</a>_#_1_0_0_,67_0_频道管理_#_1_0_0_,68_67_板块模板管理_../web_type_web.php_1_0_0_,69_67_通用模板管理_../file_view.php?activepath=<?=$mod_dir?>_1_0_0_,70_67_主页创建向导_../add_home_page.php_1_0_0_,71_0_内容维护_#_1_0_0_,72_71_待审核文章_../list_news_member.php_1_0_0_,73_71_专题管理_../list_news_spec.php_1_0_0_,74_71_评论管理_../list_feedback.php_1_0_0_,75_0_内容发布_#_1_0_0_,76_75_专题创建向导_../add_news_spec.php_1_0_0_,77_75_图集发布向导_../add_news_pic.php_1_0_0_,78_75_软件发布向导_../add_news_soft.php_1_0_0_,79_75_Flash向导_../add_news_flash.php_1_0_0_,80_0_附助功能_#_1_0_0_,81_80_友情链接管理_../add_friendlink.php_1_0_0_,82_80_投票管理_../add_vote.php_1_0_0_,83_80_论坛扩展_../bbs_addons.php_1_0_0_,84_80_留言簿管理_<?=$art_php_dir?>/guestbook/index.php_1_0_0_,85_0_会员管理_#_1_0_0_,86_85_网上会员管理_../list_user.php_1_0_0_,87_0_文件管理_#_1_0_0_,88_87_文件浏览器_../file_view.php_1_0_0_,89_0_数据库管理_#_1_0_0_,90_89_数据备份/还原_../sys_back_data.php_1_0_0_,91_89_MySQL命令_../sys_domysql.php_1_0_0_,92_0_系统帮助_#_1_0_0_,93_92_系统信息_../blank.php_1_0_0_,EOD;preg_match_all("/^.+$/m", $menustr, $regs);print_r($regs);?> 谢谢你。为了效率,这种解法pass,读文件一行行的做法是差劲的。如果按照你的思路,应该这样用这个sql,然后取来array就ok了。select CONCAT_WS( '_', id , pid , title , link , published , ordering , access , params ) from _collector_menu Notice: Uninitialized string offset: switch的奇怪问题 如何导出网站数据 关于PHP+ACCESS显示数据的问题 这样的js写法怎么理解? 20分求助一下PHP的编译问题 ◆ PHP 初学者,看哪些资料更好上手? 谢谢! 关于mysql安全问题!急 PHP的小问题大学问 能否在页面提交之前,在客户端用JAVASCRIPT对用户输入的EMAIL的格式进行检查? 想实现每次访问后删除id的代码,谁能给我修正修正? PHP中页面所带参数怎么传递的呀?
while($line=gzgets($cgi)) {
if (strpos($line,"html") == false) continue;
if (preg_match("/(.*)正则段/i", $line, $matches)) {
$test .= $matches[1].',';
}
}
不是有m修饰符吗?
m:默认的正则开始"^"和结束"$"只是对于正则字符串如果在修饰符中加上"m",那么开始和结束将会指字符串的每一行:每一行的开头就是"^",结尾就是"$"。 <?php
$menustr = <<<EOD
66_0_<a href="#" target="_parent">退出DEDECMS</a>_#_1_0_0_,
67_0_频道管理_#_1_0_0_,
68_67_板块模板管理_../web_type_web.php_1_0_0_,
69_67_通用模板管理_../file_view.php?activepath=<?=$mod_dir?>_1_0_0_,
70_67_主页创建向导_../add_home_page.php_1_0_0_,
71_0_内容维护_#_1_0_0_,
72_71_待审核文章_../list_news_member.php_1_0_0_,
73_71_专题管理_../list_news_spec.php_1_0_0_,
74_71_评论管理_../list_feedback.php_1_0_0_,
75_0_内容发布_#_1_0_0_,
76_75_专题创建向导_../add_news_spec.php_1_0_0_,
77_75_图集发布向导_../add_news_pic.php_1_0_0_,
78_75_软件发布向导_../add_news_soft.php_1_0_0_,
79_75_Flash向导_../add_news_flash.php_1_0_0_,
80_0_附助功能_#_1_0_0_,
81_80_友情链接管理_../add_friendlink.php_1_0_0_,
82_80_投票管理_../add_vote.php_1_0_0_,
83_80_论坛扩展_../bbs_addons.php_1_0_0_,
84_80_留言簿管理_<?=$art_php_dir?>/guestbook/index.php_1_0_0_,
85_0_会员管理_#_1_0_0_,
86_85_网上会员管理_../list_user.php_1_0_0_,
87_0_文件管理_#_1_0_0_,
88_87_文件浏览器_../file_view.php_1_0_0_,
89_0_数据库管理_#_1_0_0_,
90_89_数据备份/还原_../sys_back_data.php_1_0_0_,
91_89_MySQL命令_../sys_domysql.php_1_0_0_,
92_0_系统帮助_#_1_0_0_,
93_92_系统信息_../blank.php_1_0_0_,
EOD;
preg_match_all("/^.+$/m", $menustr, $regs);
print_r($regs);
?>
用这个sql,然后取来array就ok了。select CONCAT_WS( '_', id , pid , title , link , published , ordering , access , params ) from _collector_menu