Question

si obtenir une entrée de l'utilisateur et j'ai voulu chercher le fichier pour tous les résultats, et d'afficher les résultats:

$searchValue = $_POST['search'];

$handle = @fopen("home.txt","r");
# read line by line
while (($buffer = fgets($handle, 4096)) !== false && // the condtion for the $searchValue) {
    echo '<tr>';
        $array = explode(',', $buffer);
    foreach($array as $val){
         echo '<td>'.$val.'</td>';      
        } 
    echo '</tr>';       
}

je dnt obtenir ce que j'ai à faire, je veux juste afficher les lignes dans le fichier texte avec la corporation de $searchvalues

Était-ce utile?

La solution

Je voudrais encore vous recommandons d'utiliser le fichier de commande:

array file  ( string $filename  [, int $flags = 0  [, resource $context  ]] )

Lit un fichier avec chaque ligne comme un élément dans le tableau.À partir de là, vous parcourir chaque ligne (vous avez mentionné retourner les lignes dans le fichier correspondant à ce qui est pourquoi je vous recommande de fichier(...) ):

if (($fileLines = file('home.txt')) !== false)
{
  foreach ($fileLines as $line)
  {
    if (strpos($line, $searchVal) !== false)
    { // match found
      echo '<tr><td>'.str_replace(',','</td><td>',trim($line)).'</td></tr>';
    }
  }
}

Aucune utilisation de l'explosion de la matrice de juste à le rejoindre à nouveau.Vous pouvez également exploser alors implode() avec le </td><td> ainsi.

Aussi, il semble que votre fichier possède des rangées de CSVs.Si c'est le cas, vous pouvez parcourir chaque ligne, puis exploser(...) les éléments et effectuer un in_array(...) (ou itérer avec strpos pour les correspondances partielles de nouveau) sur le explosé variable.par exemple:

$values = explode(',',$line);
// array search (while entries)
if (in_array($searchVal,$values)) { ... }
// array search with partial matches
foreach ($values as $val) {
  if (strpos($val,$searchVal) !== false) { ... }
}

Autres conseils

Ce que vous cherchez est strpos()

int strpos ( string $haystack , mixed $needle [, int $offset = 0 ] )

Retourne la position numérique de la première occurrence de needle dans la chaîne haystack.

Renvoie la position comme un entier.Si l'aiguille n'est pas trouvé, strpos() retourne une valeur booléenne FALSE.

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