需要帮助以仅在Php中显示这些文本行

时间:2019-12-04 07:33:43

标签: php

我无法使我的php代码向我显示似乎是这样的txt文件中包含单词“ Personaje”或“ Cuadro de Dialogo”的所有行:

 seen 64
 images/mafalda_02_250_0.jpg: Predicted in 39.529000 milli-seconds. 
 Personaje: 100% 
 Cuadro de Dialogo: 99% 
 Cuadro de Dialogo: 98% 
 Personaje: 100%

该txt文件不是静态的,我需要我的php代码来连续查找这些单词并显示包含它们的整行。我需要我的php代码来向我显示以下内容:

Personaje: 100%
Cuadro de Dialogo: 99%
Cuadro de Dialogo: 98%
Personaje: 100%

我尝试使用以下命令:

$lines = file('result.txt');
$lines = preg_grep("/Personaje:/", $lines);


foreach($lines as $name){
  echo "$name<br/>";
}

问题是,当我从“ Personaje”或“ Cuadro de Dialogo”获得多个结果时,它什么也没显示。

有人可以帮我吗?

2 个答案:

答案 0 :(得分:0)

尝试使用此示例;

whitelist = ["home","dashboard","profile","group"];
$possibleUserInputs = ["homd","hom","ashboard","settings","group"];
foreach($possibleUserInputs as  $input)
{
     if(preg_grep("/^$input$/i",$whitelist)
    {
         echo $input." whitelisted";
    }else{
         echo $input." flawed";
    }

}
?>

结果是:
homd有缺陷的
hom有缺陷
仪表板有缺陷
设置有缺陷
小组列入白名单

希望这会有所帮助

答案 1 :(得分:0)

substr_count 是您所需要的

  

substr_count:计算子字符串出现的次数

示例:

<?php
    $text = 'This is a Cuadro de Dialogo but not a Personaje, a Personaje is something else';

    echo substr_count($text, 'Personaje'); // prints 2

    echo substr_count($text, 'Cuadro de Dialogo'); // prints 1

    // if you need it case insensitive
    echo substr_count(strtoupper($text), strtoupper('Personaje'))

    // if you need to start from a certain point in the string
    echo substr_count($text, 'Cuadro de Dialogo', 30); //prints 0
?>