亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如果變量包含單詞,則顯示它并獲取行號

如果變量包含單詞,則顯示它并獲取行號

PHP
元芳怎么了 2023-03-04 17:53:55
所以我試圖檢查“如果服務器上的文本文件包含單詞,顯示它并顯示他的行號”但我只知道如何檢查“如果文本文件包含單詞”。有人有建議怎么做嗎?我看了很多教程,但有關于本地文本文件的?,F在我只有這個功能   function readStrLine($str, $n) {    $lines = explode(PHP_EOL, $str);    return $lines[$n-1];}但我需要行號。例如,我在我的服務器上保存了文本文件。examplesite.com/file.txt內容如下: ABCDEF 123456 QWERTY現在程序讀取內容并檢查是否包含單詞。但是我需要這個詞所在的這一行的編號。
查看完整描述

1 回答

?
翻過高山走不出你

TA貢獻1875條經驗 獲得超3個贊

例子:


<?php


$desiredWord = 'apple';


$fileString = file_get_contents('asd.txt');


$lines = explode(PHP_EOL, $fileString);


$results = [];

foreach ($lines as $lineNumber => $line) {

    if (strpos($line, $desiredWord) !== false) {

        $results[] = ($lineNumber + 1) .":{$line}";

    }

}


foreach ($results as $result) {

    echo '<pre>' . print_r($result, true) . '</pre>';

}

輸入文件內容:


apple

asdfsdf

vs

werwerwer

llll

hhheeheh

there is an apple on the tree

the tree does not fall far from it's apple

輸出:


1:apple


7:there is an apple on the tree


8:the tree does not fall far from it's apple

您可以使用 foreach 遍歷這些行。該$lineNumber鍵包含您當前正在閱讀的行索引,并且$line是當前行的字符串。explode 函數將從 0 開始索引您的數組,因此當您讀取它時第一行索引將為 0。這就是這一行中的 + 1 的原因:$results[] = ($lineNumber + 1) .":{$line}";


您if (strpos($line, $desiredWord) !== false)正在檢查是否在給定行中找到所需的單詞。如果你只想要一個結果,你可以在這里返回,但如果你想收集所有可以找到這個詞的行,那么你可以像這樣將找到的行存儲在$results


最后,您可以使用第二個 foreach 或任何其他方式檢查結果 - 取決于您的實施。


查看完整回答
反對 回復 2023-03-04
  • 1 回答
  • 0 關注
  • 96 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號