【问题标题】:How to search txt file using php如何使用php搜索txt文件
【发布时间】:2015-12-30 01:13:06
【问题描述】:

我正在尝试使用 php 在 txt 文件中进行搜索。它应该搜索txt文件并显示它从文件中获得的结果。

这是我的php 代码:

<?php
$file = 'my file.txt';
$pattern = preg_quote($searchfor, '/');
$pattern = "/^.*$pattern.*\$/m";
if(preg_match_all($pattern, $contents, $matches)){
   echo "Found matches:\n";
   echo implode("\n", $matches[0]);
}
else {
   echo "No matches found";
}

【问题讨论】:

  • 这个$file = 'my file.txt; 正在抛弃 Stack 的语法高亮。缺少报价。
  • 谢谢@Fred -ii- 但它不起作用..
  • 也许您忘记实际读取文件中的内容? get_file_contents
  • @trincot 如果您要发布可能的副本,那么为什么要回答?如果这个问题因此而被关闭,可能会造成垄断
  • @trincot 另外,如果稍后要提交其他答案以可能改进问题,那么如果该副本关闭,您将拥有整个节目。抱歉,但我认为将其标记为可能的重复对于可能想要提交更多答案的其他人来说是不公平的。我觉得你应该删除重复的。

标签: php file search


【解决方案1】:

您应该使用 $file 将文件的内容读入 $contents 变量。您可以为此使用get_file_contents。此外,将其转换为函数可能很有用,因此您可以将其重新用于其他文件和搜索字符串:

function searchInFile($file, $searchFor) {
    $contents = get_file_contents($file);
    if ($contents === false) return array(); // no file, no match
    $pattern = preg_quote($searchfor, '/');
    $pattern = "/^.*$pattern.*\$/m";
    preg_match_all($pattern, $contents, $matches));
    return $matches[0];
}

$matches = searchInFile('my file.txt', 'concert');
if (count($matches)) {
    echo "Found matches:\n" . implode("\n", $matches);
} else {
    echo "No matches found";
}

【讨论】:

    猜你喜欢
    • 2019-08-27
    • 1970-01-01
    • 2017-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-13
    • 1970-01-01
    • 2015-07-07
    相关资源
    最近更新 更多