簡體   English   中英

使用PHP查找文本文件中行的最后一次出現

[英]Find last occurrence of line in a text file using PHP

問題:

我有一個帶有以下幾行的文本文件:

  • /角度:皮膚覆蓋智能腿
  • /上面是給數據文件提供默認透視圖的一種方法。
  • 腿部皮膚覆蓋物重量智能速度/ lat / lon / url / info

預期產量:

包含關鍵字的數組:腿,皮膚,體重,智力,速度

附加信息:

以斜杠開頭的所有內容均應忽略。

問題:

  1. PHP中用於掃描行的相關函數有哪些?
  2. PHP中用於檢測字符最后一次出現的相關功能是什么?

注意:

我不是在尋找代碼,只是有關PHP函數的建議,這些建議最終將導致解決方案。

要讀取文件,可以使用許多內置功能之一。

方法1-使用fopen()fgets()

$fh = fopen("myfile", "r");
while (!feof($fh)) {
   $line = fgets($fh);
   echo $line;
}
fclose($fh);

這些是以上代碼中執行的步驟:

  • 打開文件,
  • $fh是文件句柄,並存儲對文件本身的引用
  • while()條件檢查您是否達到了EOF (文件結束)
  • 只要while()條件的計算結果為TRUE並遍歷每行,並打印$line
  • 關閉檔案

方法2-使用file()

您可以使用此功能將整個文件讀入數組。 這對於短文件非常有用,也是一個很好的解決方案。 此函數將返回由行分解的字符串數組。

$arrayOfLines = file('myfile');

很簡單 現在,您可以簡單地使用foreach循環遍歷所有行並執行所需的操作。

檢測特定字符的最后一次出現:

有一個內置函數strrchr()

從PHP手冊:

此函數返回干草堆的一部分,該部分從最后一次出現針時開始,一直到干草堆結束。

您可以將其與strpos()substr()和其他字符串操作函數結合使用以檢索所需的文本。

希望這可以幫助!

這是我寫的解決方案,不確定是否是最佳解決方案。

<?php   
    $file = file('Creatures_rich.txt');

    foreach($file as $line_nums => $line)
    {       
        if (strpos($line, '/') == TRUE)
        {
            $target = explode("\t", trim($line));

            foreach ($target as $key => $value)
            {
                if (substr($value, 0, 1) != '/')
                {
                    $keywords[] = $value;
                }
            }           
            break;
        }
    }

    echo "<xmp>".print_r($keywords, true)."</xmp>";
?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM