Question

Je suis en train de faire un petit script php pour automatiser certains processus de travail. Qu'est-ce que le script doit faire est de lire un fichier (environ 10-20kb par fichier). Ensuite, je dois rechercher le fichier pour certaines phrases spécifiques et sortie - si les phrases se produisent - les linenumber (s) et l'expression

.

Par exemple, j'ai un fichier texte que je lis et recherche dans. Je recherche les expressions « La fleur est jaune », « Le cheval est blanc » et « mixte; »

Alors ma sortie est:

Ligne 4: « Le cheval est blanc » Ligne 19: « mixte; » Ligne 22: « mixte; » Ligne 99: « La fleur est jaune » ... et ainsi de suite.

J'utilise ce code, dont la sortie correctement chaque ligne et le numéro de la ligne, mais je ne peux pas faire une routine de recherche, seule la sortie de la recherche des phrases:

<?php
$lines = file('my-text-file.txt');

foreach ($lines as $line_num => $line) {
    echo "Line #<b>{$line_num}</b> : " . htmlspecialchars($line) . "<br />\n";
}
?>  

Mon bien était d'utiliser strpos , puis chaque fois que je trouve une occurrence de l'expression le mettre dans un tableau (ou dictionnaire) que le numéro de ligne comme la clé et la phrase en tant que valeur mais havre de paix « t été en mesure de le faire fonctionner et je pensais qu'il pourrait y avoir une méthode meilleure et plus efficace.

Toute aide ou suggestion dans quelle direction j'ai aller serait très apprécié.

Merci
- Mestika

Était-ce utile?

La solution

function search ( $what = array (), $filePath ) {
    $lines = file ( $filePath );

    foreach ( $lines as $num => $line ) {
        foreach ( $what as $needle ) {
            $pos = strripos ( $line, $needle );
            if ( $pos !== false ) {
                echo "Line #<b>{$num}</b> : " . htmlspecialchars($line) . "<br />\n";
            }
        }
    }
}

#   Usage:
$what = array ( 'The horse is white', 'The flower is yellow', 'mixed' );
search ( $what );

Autres conseils

Créer un script qui grep votre conduite d'entrée et les résultats dans votre script PHP.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top