【发布时间】:2013-07-26 10:57:02
【问题描述】:
在 php 中循环一个文本文件,我使用 preg_match 来检测该行是否包含“default”,并在该单词后放置一个逗号而不是空格,但它不起作用:
$FSCS = "";
//Read the txt file
if(($handle = fopen("FSCS.txt", "r")) != false)
{
//Loop through each line
while(($data = fgetcsv($handle, 1000, ",")) != false)
{
if(preg_match("/default/", $data[0])) $FSCS .= str_replace("default ", "default,", trim($data[0]))."\n";
else $FSCS .= trim($data[0]).",";
}
}
每一行都由“else”语句处理
【问题讨论】:
-
default 需要存在于该行的第一个单元格中,而不是该行的其余部分。
-
确实如此,文本文件中的每一秒新行都包含单词 default。如果我在最后回显 $FSCS,则每一行都用逗号分隔。但 default 后面仍然有一个空格而不是逗号。
-
@user2622416 原因是你在
str_replace搜索“default”之前修剪了$data[0]的内容,所以trim函数从“default”中删除了尾随空格然后str_replace不能再匹配“默认”了 -
尝试向我们提供一些示例输入数据和预期结果。你可以试试这样的:pastebin.com/CwJdMBbB
标签: php text preg-match str-replace