我有一段时间想出一个不错的方法使这个if语句搜索这些代码的文件。我将文本文件设置为以下内容进行读取:
myfile.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) {
答案 0 :(得分: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
}