jörg: for-Schleife in Kombination mit Array funktioniert nicht

Beitrag lesen

Hallo!

Ich habe ein Problem mit folgendem Code:

<?php

$words = array('<a>', '[url]', '[link]');// In diesem Array werden verbotene Wörter gespeichert
$wordsLength = count($words); // Die Anzahl der Elemente des Arrays
echo "Anzahl der Werte im Array words: ".$wordsLength."<br>"; // Testausgabe um die Anzahl der Elemente zu kontrollieren

function checkString($data){
for($i = 0; $i <= $wordsLength; $i++){
  echo "Überprüfung der Varible i: ".$i."<br>"; // Überprüfung des Inhalts der Variablen
  echo "Arrayausgabe: ".$words[1]."<br>"; // Überprüfung der Ausgabe des Arrays mit statischer Zahl
  echo "Test: ".$words[$i]."<br>"; // Überprüfung der Ausgabe des Arrays mit dynamischer Zahl
  if( eregi($words[$i], $data) ){
   $punkte = $punkte + 1;
  }
}
echo "Punkte: ".$punkte."<br>"; // Ausgabe des Wertes von $punke - eigentlich sollte der Wert jetzt 1 sein
}

$text = "test test test <a> test test test";

checkString($text);

?>


> Ich möchte einen String durchsuchen. Und zwar sollen die Suchbegriffe in einem Array stehen. Könntet ihr mir bitte sagen, wo das Problem liegt?  
>   
> Die Ausgabe sieht übrigens so aus:  
> ##################################  
> Anzahl der Werte im Array words: 3  
> Überprüfung der Varible i: 0  
> Arrayausgabe:  
> Test:  
>   
> Warning: eregi() [function.eregi]: REG\_EMPTY in D:\xampp\xampp\htdocs\scripts\blog\class.php on line 12  
> Punkte:  
> ##################################  
>   
> Vielen Dank für eure Hilfe!  
>   
> ciao, ww  
  
  
<?php  
  
$words = array('<a>', '[url]', '[link]');// In diesem Array werden verbotene Wörter gespeichert  
$wordsLength = count($words); // Die Anzahl der Elemente des Arrays  
echo "Anzahl der Werte im Array words: ".$wordsLength."<br>"; // Testausgabe um die Anzahl der Elemente zu kontrollieren  
  
function checkString($data){  
 global $words, $wordsLength;  
 for($i = 0; $i < $wordsLength; $i++){  
  echo "Überprüfung der Varible i: ".$i."<br>"; // Überprüfung des Inhalts der Variablen  
  echo "Arrayausgabe: ".$words[1]."<br>"; // Überprüfung der Ausgabe des Arrays mit statischer Zahl  
  echo "Test: ".$words[$i]."<br>"; // Überprüfung der Ausgabe des Arrays mit dynamischer Zahl  
  if( eregi($words[$i], $data) ){  
   $punkte = $punkte + 1;  
  }  
 }  
 echo "Punkte: ".$punkte."<br>"; // Ausgabe des Wertes von $punke - eigentlich sollte der Wert jetzt 1 sein  
}  
  
$text = "test test test <a> test test test";  
  
checkString($text);  
  
?>  
  
Du musst die globalen Variablen in der function zuerst bekannt machen.  
  
Anzahl der Werte im Array words: 3  
Überprüfung der Varible i: 0  
Arrayausgabe: [url]  
Test: <a>  
Überprüfung der Varible i: 1  
Arrayausgabe: [url]  
Test: [url]  
Überprüfung der Varible i: 2  
Arrayausgabe: [url]  
Test: [link]  
Punkte: 1