1

我有一个地狱般的时间想出一种体面的方法,使这个 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) {
4

1 回答 1

1

如果要逐行执行,请使用 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
}
于 2012-07-03T20:28:40.033 回答