这样试试:(\"GET \/)|(\"POST \/)(^\.gif)(HTTP\/1.0\")|(HTTP\/1.1\")
解决方案 »
- PHPExcel循环读取excel,列数超过z,比较出问题
- 如何将mysql中的enum类型中全部项列出来
- 请问这一段网上的socket操作为何报http status error 错误?
- 关于PHP制作网站的问题求助
- 请问怎样实现论坛的收藏夹功能?
- 一个数据转换的问题,紧急,请各位大哥帮帮忙!!!!!!!!!!
- 如何用php后台执行一个耗时的脚本
- 请教:php4连接Oracle9.2数据库的问题
- 一个服务器上有多个 IP地址, Curl 能否使php 使用所指定的IP访问其他服务器?
- php 使用socket可以获取mac地址吗?
- 大家帮帮忙,关于session的问题
- 请熟悉PHP的朋友帮下小忙。。可以用人民币做酬~~有时间的请进
少了两个,呵呵。。
$s = <<< TEXT
211.136.23.7 - - 050605235909 0 "GET /wawama/private/games/dixiaducheng/duchenglunpan/lunpan_result.jsp?val=100&choice
=36&game_type=3&wsid=1117986021741204 HTTP/1.0" 200 1019 "-" "MOT-E680/R51_G_0F.51.A1P MIB/2.2 Profile/MIDP-2.0 Configuration/CLDC-
1.1" "13637630308" "wap.wawama.com"
TEXT;
preg_match_all("/\"(?:GET|POST) .+ HTTP\/1\.[01]/isU", $s, $ar);
print_r($ar[0]);
?>
然后遍历$ar[0]删去含有".gif"的元素
^(\"GET /|\"POST /)(?!\.gif)*(HTTP\/1\.0\"|HTTP\/1\.1\")$
应该是对的。但是执行出错,关键就在于,不能把".gif"排除掉。
文档上说这样(^\.gif)可以只排除.gif,可是不知道为什么不行。
preg_replace_callback("/\"(?:GET|POST).*(\.gif)?.*(HTTP\/1\.0\"|HTTP\/1\.1\")/isU","stripe_gif",$text);function stripe_gif($matches) {
return $matches[1].$matches[3];
}不知道合不合您的要求??
function stripe_gif($matches) {
return $matches[1].$matches[2].$matches[4].$matches[5];
}
preg_replace_callback("/\"(?:GET|POST)(.*)(\.gif)?(.*)(HTTP\/1\.0\"|HTTP\/1\.1\")/isU","stripe_gif",$text);
我只能回家k书了,不知道perl有没有解决的办法,建议楼主去其他perl的子论坛求解!!
书到用时方恨少啊!!!! :(