preg_match和reg表达式使用字母数字,逗号,句号,感叹号等

时间:2012-07-03 20:20:37

标签: php regex preg-match

我有一段时间想出一个不错的方法使这个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) {

1 个答案:

答案 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
}