[英]Filter data out from text file using php
這是我基本上有:
$data = file('../articles.txt');
$data=str_replace(array('<', '>', '\\', '/', '='), "", $data);
foreach($data as $element)
{
$element = trim($element);
$pieces = explode("|", $element);
echo "
<div class=article-box>
<div class=article-image>
<a href=" . $pieces[4] . "/" . $pieces[2] . "/ ><img src=" . $pieces[4] . "/" . $pieces[2] . "/" . $pieces[2] . "-img.png width=250px></a>
</div>
代碼並沒有在這里結束,但是我希望到目前為止是有意義的。
我需要的是僅回顯那些具有某些$pieces[4]
值的行。 假設-僅回顯文本文件中具有$pieces[4]
值“ food”的行。
有可能嗎? 我嘗試了數組搜索,數組鍵,過濾后的數組等……但我從來沒有做對。
更新:佩德羅的答案(半途而廢):
{
$element = trim($element);
if (strpos($element,'food') !== false) {
$pieces = explode("|", $element);
}
一種工作-它可以完成工作,但是將我要隱藏的那些輸出替換為那些被過濾掉的輸出。
我想要的是跳過不包含給定值的輸出。 目前,它會跳過不需要的輸出,但將其替換為空白值或僅將過濾后的輸出相乘。 以下是有關回聲需要哪些行以及跳過哪些行的說明。
2015-10-05|21:31|name1|name2|food|comment|extra - needs to trigger echo
2015-10-05|21:31|name1|name2|health|comment|extra - needs to skip
2015-10-05|21:31|name1|name2|food|comment|extra - needs to trigger echo
2015-10-05|21:31|name1|name2|finance|comment|extra - needs to skip
2015-10-05|21:31|name1|name2|finance|comment|extra - needs to skip
2015-10-05|21:31|name1|name2|health|comment|extra - needs to skip
2015-10-05|21:31|name1|name2|food|comment|extra - needs to trigger echo
上面的代碼現在做的是:
正確的輸出
替換輸出(與輸出1相同)-需要跳過
正確的輸出
替換輸出(與輸出3相同)-需要跳過
替換輸出(與輸出3相同)-需要跳過
替換輸出(與輸出3相同)-需要跳過
正確的輸出
因此,它設法過濾掉我需要的內容,但不符合條件的內容將被最后匹配的行替換。 但是我需要跳過這些。
唯一缺少的是對上述Pedro的回答進行補充,以便跳過,忽略,根本不回顯(不符合條件$pieces[4]
=“ food”的條件)的行2,4,5,6。
您可以使用strpos來檢查該行是否包含food
一詞。
$element = trim($element);
if (strpos($element,'food') !== false) {
$pieces = explode("|", $element);
//the rest of the code
}
我對Pedro的回答做了一些調整,我想我得到了所需的結果。 代碼是這樣的:
<?php
$data = file('../articles.txt');
$data=str_replace(array('<', '>', '\\', '/', '='), "", $data);
foreach($data as $element)
{
$element = trim($element);
if (strpos($element,'food') !== false) {
$pieces = explode("|", $element);
echo "
這里的一些HTML和PHP不需要任何調整。
";
}
else {
echo "";
}
}
?>
首先,我添加了echo“ error”; 到其他部分,但這只是為了測試。 通過刪除它,我得到了令人煩惱的錯誤消息。 目前看來,它正以這種方式工作。
如果我不添加else部分,那么我又回到了問題所在,它會過濾掉其中包含“食物”值的行,但這次只用零值回顯其他所有內容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.