所以我有
$q = $_REQUEST["q"];
$f = fopen("address.txt", "r");
while (($line = fgets($f)) !== FALSE) {
if (strstr($line, $q)) {
print "<li>found: $line";
让我说我有
Street 1 number 122
Street 2 number 22
<{1>}中的,我想搜索号码address.txt
。
如何搜索22
,但又不是22
?
提前致谢。
答案 0 :(得分:2)
您可以使用带有word boundaries的正则表达式来完成此操作。快速举例:
if(preg_match('/\b22\b/', $line)) {
PHP演示:https://eval.in/817207
正则表达式演示:https://regex101.com/r/y9slbd/1/
使用输入的示例($q
):
if(preg_match('/\b' . preg_quote($q, '/') . \b/', $line)) {
http://php.net/manual/en/function.preg-quote.php
(尽管如果连接到此示例中,22
的示例不会导致任何问题)