我正在尝试构建一个FaH统计信息刮刀。每隔一小时,新更新的统计信息列表就会通过cron
和wget
被提取到我的服务器中http://chrislabs.info/statsFile.txt。这是使用$page
在file_get_contents
脚本中打开的。
然后,对于唯一团队编号列表(第四列),我正在尝试使用以下代码正则表达包含该团队编号的所有行:
foreach($teamArr as $team){
$pattern = "/(.*[ascii])\t([0-9]*)\t.*[0-9]\t$team/";
preg_match_all($pattern, $page, $matches);
echo "<pre>";
print_r($matches);
echo "</pre>";
然而,这并没有找到$page
中的所有匹配项,而我现在对于要解决的问题感到茫然。我已将pcre.*
INI设置更改为1GB。
答案 0 :(得分:3)
尝试使用它:
$pattern = '~^(?:\S++\t){3}' . $team . '$~m';
您的模式未找到所有匹配项,因为您添加的[ascii]
仅匹配字母a或字母s或字母c或字母i。如果您想匹配所有字母,您必须使用[a-z]
另一种方法是使用fgetcsv并删除所有非您正在寻找的团队的记录。
您还可以使用两个explode()
第一个\n
,第二个\t
,并为您的团队检查$item[3]
。