String zu Array zu String
String zerlegen
strtok()
Einen String in einzelne token (Stücke) zerlegen. Wobei die Trennzeichen wählbar sind.
Jedes Zeichen ist ein eigenes Trennzeichen (nichts Zusammenhängendes).
Hier ist der String ein Querystring und jedes Wort soll in einer eigenen Zeile ausgegeben werden.
Nach dem ersten Aufruf von strtok() wird der String im Cache abgelegt,
der zweite Aufruf muss nur noch die Trennzeichen übergeben (die können so jedes Mal andere sein).
<?php
$test="http://localhost/lehrling/HTML_CSS_JS/php_sammlung/variable_linkubergeben.php?C=%20C&D=%20Das%20war%20eine%20super%20Entscheidung.";
$word = strtok( $test, "?" );
/* wenn $word kein String ist, dann sind wir am Ende angelangt
und wir müssen nicht weiter die Schleife ausführen */
while ( is_string( $word ) ) {
if ( $word ) {
print "$word<br />";
}
/* zweiter Aufruf der Funktion ohne $test um nicht von vorne zu beginnen
und in eine Endlosschlaufe zu geraten */
$word = strtok( "%20" );
}
?>
C=
C&D=
Das
war
eine
super
Entscheidung.
String in einen Array teilen
explode();
Ähnlich wie oben aber der String wird in einen Array zerlegt und die Trennzeichenangabe gilt auch bei mehreren Zeichen als eine Entität.
<?php
$trenner = "%20";
$words = explode( $trenner, $test ); // $test kommt von obigem strtok() Test
echo "$words[0]<br />$words[1] $words[2] $words[3] $words[4] $words[5] $words[6]";
?>
C&D= Das war eine super Entscheidung.
Array zu einem String verbinden
implode();
Parameter sind: implode("Klebstoff","Array"), achtung als Klebstoff wirkt nur ein einzelnes Zeichen!
<?php
$flick = implode("+&X", $words);
echo $flick;
?>
join();
join() nimt 2 Argumente auf, 1. Seperator als String (in diesem Fall ein Komma und ein Leerschlag) und 2. den Array, welcher zu einem String verbunden werden soll. 2. kann auch von einem mehrdimensionalen Array ein Eintrag sein ($words[1] wenn es den gäbe).
<?php
$commastr=join(", ", $words);
echo $commastr;
?>
Ausgabe zwischen HTML Tags
So liessen sich auch Listen, Tabellen, Anker, also HTML aus einem Array erstellen:
<?php
$links="<li>";
$rechts="</li>";
$html = "<ol>".$links . join("$rechts\n$links", $words) . $rechts."</ol>";
echo $html;
?>
- http://localhost/lehrling/HTML_CSS_JS/php_sammlung/variable_linkubergeben.php?C=
- C&D=
- Das
- war
- eine
- super
- Entscheidung.