Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/253.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用字母数字、逗号、句点、感叹号等的preg_match和reg表达式_Php_Regex_Preg Match - Fatal编程技术网

Php 使用字母数字、逗号、句点、感叹号等的preg_match和reg表达式

Php 使用字母数字、逗号、句点、感叹号等的preg_match和reg表达式,php,regex,preg-match,Php,Regex,Preg Match,我有一个地狱般的时间想出一个体面的方式,使这个如果语句搜索这些代码的文件。我将文本文件设置为从中读取: 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) ) {

我有一个地狱般的时间想出一个体面的方式,使这个如果语句搜索这些代码的文件。我将文本文件设置为从中读取:

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查询,并始终在文本中返回与上述类似的代码

我非常感谢你在这方面的帮助。如果有人知道更好的方法或不同的命令,我也愿意试一试:)

编辑:

如果我可以这样做:

if (count($vShareArray) > 0 && $result['fmbushels_itemCode'] **is not in** $subject) {
$f = file('myfile.txt');
array_map('trim', $f);
if(in_array($result['fmbushels_itemCode'], $f)){
    // success
}

如果要逐行执行,请使用file()函数

$f = file(fvManager_Path . 'myfile.txt');
foreach($f AS $line){
    // $line is current line at file
}
我不确定你是否完全理解preg_match的工作原理。第一个参数是正则表达式模式,第二个是要将模式匹配到的参数,第三个是匹配数组。因此,对于第二个参数中匹配的每个有效模式,将在数组上创建一个新索引

我不是百分之百相信你想要实现的。您是否正在尝试查看文件中是否存在
$result['fmbushels\u itemCode']

如果上述情况正确,您只需执行以下操作:

if (count($vShareArray) > 0 && $result['fmbushels_itemCode'] **is not in** $subject) {
$f = file('myfile.txt');
array_map('trim', $f);
if(in_array($result['fmbushels_itemCode'], $f)){
    // success
}

如果要逐行执行,请使用file()函数

$f = file(fvManager_Path . 'myfile.txt');
foreach($f AS $line){
    // $line is current line at file
}
我不确定你是否完全理解preg_match的工作原理。第一个参数是正则表达式模式,第二个是要将模式匹配到的参数,第三个是匹配数组。因此,对于第二个参数中匹配的每个有效模式,将在数组上创建一个新索引

我不是百分之百相信你想要实现的。您是否正在尝试查看文件中是否存在
$result['fmbushels\u itemCode']

如果上述情况正确,您只需执行以下操作:

if (count($vShareArray) > 0 && $result['fmbushels_itemCode'] **is not in** $subject) {
$f = file('myfile.txt');
array_map('trim', $f);
if(in_array($result['fmbushels_itemCode'], $f)){
    // success
}

很抱歉,添加评论没有像问题本身这样的发布功能,我想我可能需要相反的功能。代替foreach($f AS$vShare['item']){我需要类似foreach($f!AS$vShare['item']){但是!由于出现了一个错误,很抱歉添加评论没有发布类似问题的功能,我想我需要的可能正好相反。代替foreach($f AS$vShare['item']){我需要类似foreach($f!AS$vShare['item']){但是!AS给出了一个错误