我花了很长时间想出了一个体面的方法,使这个if语句在文件中搜索这些代码。我设置了要从中读取的文本文件:
我的文件.txt
r)
0Y7
1a6
q.
@g
@(
#a
!P
T[
V}
0,
以下是我所做的事情的简要介绍。
$subject = file_get_contents(fvManager_Path . 'myfile.txt');
if ( preg_match('/^[a-zA-Z0-9,]+$/',$result['fmbushels_itemCode'], $subject) ) {
基本上,我正在尝试逐行搜索文本文件以查看整个字符串是否存在。它们也区分大小写。
$result['fmbushels_itemCode'] 来自 SQL 查询,并且始终在文本中返回类似于上述的代码。
我将不胜感激对此的任何帮助。如果有人知道更好的方法或不同的命令,我也愿意试一试:)
编辑:
private function _fvShareBushels() {
$subject = file_get_contents(fvManager_Path . 'myfile.txt');
if (count($vShareArray) > 0) {
$vCntMoves = count($vShareArray);
for ($vI = 0;$vI < $vRunMainLoop;$vI++) {
sell $result['fmbushels_itemCode']);
}
}
}
这是一个大代码的片段。由于帖子限制,我不得不撕掉大部分。我可以合作的领域是:
if (count($vShareArray) > 0) {
如果我能把它变成这样:
if (count($vShareArray) > 0 && $result['fmbushels_itemCode'] **is not in** $subject) {
如果你想逐行做,请使用 file() 函数。
$f = file(fvManager_Path . 'myfile.txt');
foreach($f AS $line){
// $line is current line at file
}
我不确定您是否完全了解preg_match的工作原理。第一个参数是正则表达式模式,第二个参数是要将模式匹配到的参数,第三个参数是匹配数组。因此,对于第二个参数中匹配的每个有效模式,都会在数组上创建一个新索引。
我不是100%在你想要完成的事情上。您是否正在尝试查看文件中是否存在$result['fmbushels_itemCode']
?
如果以上情况是正确的,您只需执行以下操作:
$f = file('myfile.txt');
array_map('trim', $f);
if(in_array($result['fmbushels_itemCode'], $f)){
// success
}