我知道这一定是一个非常容易解决的问题但作为一个半新手,让我疯狂。
我有一个包含多行的txt文件。每行中的元素用|分隔。每一行之后都有一个回车。
我只是试图遍历这些行,如果任何行的第一个元素与某个字符串匹配,那么必须使用该特定行完成一些事情。
$mystring = 'some string with spaces (or not)';
$myarray = explode("\n", file_get_contents('myfile.txt'));
for($x = 0; $x < count($myarray); $x++) {
$myline = explode("|", $myarray[$x]);
if ($myline[0] == $mystring) {
//do things
}
}
不幸的是,我无法让它工作:(任何建议?
修改以添加更多信息:
我们假设我的参考字符串是
$mystring = 'Spider-man: Homecoming';
让我们假设txt文件中的一行是:
蜘蛛侠:回归|漫威和索尼电影,2017年7月发布
所以,正如代码中所述,我将
$myline[0] = 'Spider-man: Homecoming';
由于某种原因,代码不考虑$ myline [0]和$ mystring equals。
答案 0 :(得分:0)
好的,我找到了解决方案。
$mystring = 'some string with spaces (or not)';
$myarray = explode("\n", file_get_contents('myfile.txt'));
for($x = 0; $x < count($myarray); $x++) {
$myline = explode("|", $myarray[$x]);
if (preg_replace("/[^a-zA-Z]/", "", $myline[0]) == preg_replace("/[^a-zA-Z]/", "", $mystring)) {
//do things
}
}
出于某种原因(我猜爆炸元素有一些附加特征,如空格或其他),比较不起作用。现在使用preg_replace,它可以工作!