我觉得这是地球上最大的傻瓜。但是我循环浏览一个文本文件并试图比较每一行并找到换行符......你知道......“\ n”。但我似乎无法比较字符串!!!! 这就是我在做的事情。
$filename = 'StatesCities.txt';
$file = file($filename);
$matchedLines = array();
foreach($file as $line) {
$matchesLines[] = $line;
if(strcmp($line, "La Mesa") == 0)
{
echo("Yeah");
}
echo($line);
echo("<br />");
}
答案 0 :(得分:0)
你的问题说你正在寻找“\ n”,但你的代码正在寻找“La Mesa”。也许你想说
if (strpos($line, "\n"))
答案 1 :(得分:0)
您是否尝试删除换行符?如果是这种情况,那么你可以爆炸它们。
$file = file_get_contents( $file_path );
$page = explode( "\n", $file );
//Now they're gone
foreach( $page as $line )
{
if( strpos( $line, 'searchfor' ) !== false )
{
//do this
}
}
strpos是我通常在字符串中搜索的方式,只需确保使用!==检查false而不是false或0.如果你要查找的字符串有一个0(第一个字符)的strpos,它将返回一个如果你没有用!==检查类型,则为误报。祝你好运。
答案 2 :(得分:0)
file()
函数将在默认情况下创建的数组中维护换行符(\n
)。有关详细信息,请参阅here;特别是flags
部分。解决问题......
而不是:
$file = file($filename);
使用此:
$file = file($filename, FILE_IGNORE_NEW_LINES);