Warum würde var_dump einen größeren Wert als die Stringlänge zurückgeben?
Ich arbeite daran, einige Songtexte mithilfe einer API zu erhalten und die Lyrics-Zeichenfolge in eine Reihe von Wörtern umzuwandeln. Ich bekomme einige ungewöhnliche Verhaltensweisen in der Funktion preg_replace. Beim Debuggen mit var_dump wurde festgestellt, dass var_dump für die Zeichenfolge "you" den Wert 10 zurückgibt. Dies weist darauf hin, dass möglicherweise etwas nicht stimmt. Danach wirkt preg_replace komisch.
Dies ist mein Code:
$source = get_chart_lyrics_data("madonna","frozen");
$pieces = explode("\n", $source);
$lyrics = array();
for($i=0;$i<count($pieces);$i++){
if($i>10){
$words = explode(" ",$pieces[$i]);
foreach($words as $_word){
if($_word=="")
continue;
var_dump($_word);
$word = strtolower($_word);
var_dump($word);
$word = trim($word);
var_dump($word);
$word = preg_replace("/[^A-Za-z ]/", '', $word);
var_dump($word);
$lyrics[$word]++;
}
}
}
Dies sind die ersten 4 Zeilen, die dieser Code zurückgibt:
string(10) “You”
string(10) “you”
string(10) “you”
string(8) “lyricyou”
Wie kommt es, dass var_dump einen Wert von 10 für "Sie" zurückgibt? Und warum verhält sich preg_replace so?
Vielen Dank