1

我正在尝试在 PHP 脚本中运行一个简单的搜索,但我无法找出问题所在。
我正在 txt 文件中搜索“詹姆斯”这个词,我知道它在那里,但是我没有得到任何结果。
但是,如果我用“/J/”替换“/James/”,我会得到我应该得到的结果。
我将把txt文件的内容粘贴到代码下面

<?php
$lines = file('ServicesResults.txt');
$lines_two = preg_grep("/James/", $lines);

foreach($lines_two as $name){
    echo "$name<br>";   
}
?>

------txt 文件内容-----
Breanna 说你好
Joe 说你好
Steven 说你好
Lyn 说你好
Len 说你好
James 说你好

-----搜索结果“/J/” -----
Joe say hello
James say hello

----没有搜索结果“/James/”----

----没有搜索“/Ja/”的结果----

对不起,这似乎是一个非常愚蠢的问题,我只是无法弄清楚我做错了什么

谢谢所有詹姆斯

4

2 回答 2

0

您的问题确实有点愚蠢(请不要冒犯),因为您所拥有的只是有效:

<?php

$text = <<<BUFFER
Breanna says hello 
Joe says hello
Steven says hello
Lyn says hello
Len says hello
James says hello
BUFFER;

$lines = explode("\r\n", $text);

$lines_two = preg_grep("/James/", $lines);

foreach($lines_two as $name){
    echo "$name\n";   
}

演示:https ://eval.in/private/f5bdf0fdfdb55d ;程序输出:

James says hello

因此,无论您认为问题出在哪里/在哪里,您都不会专门询问它。提供的信息不允许重现您的问题。我只是从你的问题中复制并粘贴了这个。

于 2013-08-20T23:06:05.663 回答
0

我希望得到hakre's祝福,提出以下解决方案:

您需要使用file_get_contents()函数才能使用hakre 下面的代码

(已测试)

假设在 ServicesResults.txt 文件中:

------txt 文件内容-----
Breanna 说你好
Joe 说你好
Steven 说你好
Lyn 说你好
Len 说你好
James 说你好

使用/James/将返回James says hello
使用/Ja/将返回James says hello
使用/J/将返回Joe says hello James says hello

PHP

<?php

$text = file_get_contents('ServicesResults.txt');

$lines = explode("\n", $text);

$lines_two = preg_grep("/Ja/", $lines); // modify as required

foreach($lines_two as $name){
    echo "$name\n";   
}

全部功劳归于 hakre

于 2013-08-21T00:03:31.447 回答