2016-12-04 3 views
0

Dieser Code soll den Inhalt einer Textdatei lesen, die 100 URLs in jeder Zeile enthält. Das Skript sucht mit file_get_contents nach einem bestimmten Wort in den URLs.PHP während innen für - Was ist mit diesem Code falsch?

<?php 
$mysearch = file("phpelist.txt"); 

for($index = 0; $index <count($mysearch); $index++) 
{ while ($index >=10 && $index <=20): 

    $mysearch[$index] = str_replace("\n", "", $mysearch[$index]); 
    $data = file_get_contents("$mysearch[$index]"); 

    $searchTerm = 'about'; 

    if (stripos($data, $searchTerm) !== false) { 
     echo "$mysearch[$index]</strong>...FOUND WORD<br><strong>"; 
    } 
    else 
    { 
     echo "$mysearch[$index]</strong>...NO SUCH WORD<br><strong>"; 
    } 
endwhile; 
} 

?> 
+0

'$ index' nicht verändert in' while' sobald es eintritt nie beenden – cske

+2

Sind Sie sicher, dass dieser Code läuft? Es sieht so aus, als hätten Sie einen Syntaxfehler ... Wenn Sie 'endwhile' verwenden, sollten Sie' while (...): ' – Dekel

+0

verwenden und den anderen Kommentar ebenfalls lesen :) – Dekel

Antwort

0

Ihr Code verwirrte mich. Betrachtet man nur die Anforderungen, habe ich ...

$searchTerm = 'about'; 
$file = new SplFileObject('phpelist.txt'); 
foreach ($file as $n => $url) { 
    if ($n < 10) continue; 
    if ($n > 20) break; 

    $content = file_get_contents($url); 
    if (stripos($content, $searchTerm) !== false) { 
     echo "<strong>$url</strong>...FOUND WORD<br>"; 
    } else { 
     echo "<strong>$url</strong>...NO SUCH WORD<br>"; 
    } 
} 

KORRIGIERT: Zusätzliche Anforderungen (siehe Kommentare unten). Was bedeutet, dass es nicht mehr viel kürzer als OP ist. Das einzige, was ich hinzufügen kann, ist die Verwendung von SplFileObject. Ich mag SplFileObject verwenden, weil Sie eine Datei wie ein Array verwenden können (ohne die gesamte Datei in den Speicher zu laden) und so in einer foreach (seit SplFileObject implementiert die Iterator Schnittstelle) verwendet werden kann.

+0

Hallo, ich brauche das Skript, um Zeilen zwischen 10 und 20 zu lesen. Tut mir leid, das nicht zu erwähnen. –

+0

Ich merke gerade jetzt, dass Sie nicht in der URL suchen, sondern den von dieser URL abgerufenen Inhalt. Lass es mich reparieren ... – BareNakedCoder