PHP zeichen zählen?

Hi, ja habe ich.
Wir komplett mir leerzeichen ausgegeben.
Irgendwas wird nicht gezählt. Ich vermute mal das das ü nicht doppelt gezählt wird. Kann Dan am Charter-set liegen?
Könnte man den für die Abfrage ändern?

Dazu müssten wir die Abfrage erstmal sehen, inklusive das was du damit machst ^^

btw. mach mal das was wird ausgegeben?
PHP:
$test = $deinString;
for($i = 0;$i<strlen($test);$i++)
{
    echo $test{$i} . " <br>";
}
 
Anbei mal die Abfrage:

PHP:
$query4 = "SELECT USA.street
                     FROM core_street as USA
                           INNER JOIN user_shippingaddress as O
                                 ON O.streetID=USA.id
                      
                               WHERE userID=O.streetID ";
                              

$result4 = mysqli_query($con, $query4);
while ($row = mysqli_fetch_assoc($result4)){
     $street = $row['street'];   

    
     $str = $street;
     $s1 = strlen($str);
 
Okay, sieht mMn. richtig aus, hast du schon probiert in der SQL-Abfrage die Zeichen zu zählen? mit LENGTH(`USA.street`) AS anzahlZeichen.

Und probier mal das, was wird nun angezeigt:
PHP:
$test = "Frühlingser. 1";
echo $test . "<br>";
echo strlen($test) . "<br>";
echo "In einer Schleife, \"-\" werden nicht gezählt<br/>";
for($i = 0;$i<strlen($test);$i++)
{
    echo $test{$i} . " - ";
}
So siehst bei mir aus
c.jpg
 
Wie wärs, die DB-Verbindung etc.etc. einfach ausdrücklich auf ISO8859-1 zu setzen? ... :rolleyes:
Oder, noch besser, gleich nicht mit Byte, sondern Zeichen arbeiten.

edit: Korrigiert mich, wenn ich mich irre, ber der Plan ist doch, Buchstaben zu zählen statt Byte?
Nur eben bestimmte Buchstaben doppelt. Die Bytes eines UTF8-Strings zu zählen ist nicht das Gleiche.
äöü werden zwar doppelt gezählt, aber auch einiges mehr.
 
Zuletzt bearbeitet:
Ich weiß auch nicht welchen Sinn das ergibt, äöü doppelt zu zählen. Aber wenns sein muss mach halt nen replace ( ä => ae) vorher.
 
Naja, das Ding ist, der zählt bei mir die Umlaute ja auch doppelt, warum nicht bei ihm? :eek:

PS: Meine PHP-Version ist 5.4.19
 
Ne andere Idee, vlt. nicht so dufte aber jage deine zu zählende Variable mal durch
PHP:
$str = utf8_encode($deinString)
...n Versuch ist es wert^^
 
Zurück