Alle Zeichen nach / löschen!
jojo
- php
0 Hopsel0 Teufelchen0 Tom0 Felix Riesterer0 Tom
Hallo,
nun suche ich verzweifelt und finde einfach keine Lösung!
Mein Problem:
$test = "satz1/irgendwas2";
Wie schaffe ich es, dass alle Zeichen nach dem Slash entfernt werden? Es soll am Ende also nur noch "satz1" stehen.
Ein Paar Informationen: "irgendwas2" ist irgendeine Zeichenkette, weder die Länge, noch die Zeichen sind festgelegt, ich kann also für das Entfernen keine Start und Endpunkte angeben.
Bitte helft mir!
Hi jojo!
Bitte helft mir!
Das Manual hilft dir weiter.
1. Suche das erste Vorkommen eines Slashs. (strpos)
2. Kopiere alle Zeichen vor dem Slash. (substr)
Nicht sehr schwer, oder? =)
MfG H☼psel
Ich habe jetzt beide Lösungen ausprobiert, die mit strpos und substr
(erst dank eurer Hilfe habe ich den wahren Sinn dahinter erblickt) und die mit dem explode, beide funktionieren prima, vielen Dank für eure Hilfe! =D
Hello,
Ich habe jetzt beide Lösungen ausprobiert, die mit strpos und substr
(erst dank eurer Hilfe habe ich den wahren Sinn dahinter erblickt) und die mit dem explode, beide funktionieren prima, vielen Dank für eure Hilfe! =D
Wenn wir uns anstrengen, finden wir bestimmt noch mehr Methoden.
Die Methode
for ($i=0, $i<$len, $++)
{
if($text[$i] == $such)
{
break;
}
$return .= $text[$i];
}
ist eigentlich die klassische, wobei man echte "for"-Schleifen eigentlich nicht abbrechen darf (gar nicht abbrechen kann), wenn sie in der entsprechnden Hochsprache wirklich laufzeitoptimiert bis auf Prozessorebene herunterportiert worden sind.
Aber dann kann man das Konstrukt in der höheren Sprache durch eine while-Schleife ersetzen.
Und genauso arbeiten letztlich die Programmiersprachen auch. Sie lassen den String von $anfang bis $ende durchlesen und brechen beim passenden Zeichen ab.
Es gibt bei einigen Prozessoren sogar eigene Funktionen für Stringvergleiche und Teilstringsuche. Die sind dann auch in großen Datgenmengen schnell, vorausgesetzt, die aktuelle Codierung lässt sich auf die Datenstruktur dieser Befehle abbilden
Ein harzliches Glückauf
Tom vom Berg
[latex]Mae govannen![/latex]
Ich habe jetzt beide Lösungen ausprobiert, die mit strpos und substr
(erst dank eurer Hilfe habe ich den wahren Sinn dahinter erblickt) und die mit dem explode, beide funktionieren prima, vielen Dank für eure Hilfe! =DWenn wir uns anstrengen, finden wir bestimmt noch mehr Methoden.
Bei PHP6 scheint es noch einfacher zu werden:
$test = "satz1/irgendwas2";
echo [link:http://de.php.net/manual/de/function.strstr.php@title=strstr]($test,'/',true);
(bzw. stristr für nocase)
Cü,
Kai
nun suche ich verzweifelt und finde einfach keine Lösung!
Mein Problem:$test = "satz1/irgendwas2";
Wie schaffe ich es, dass alle Zeichen nach dem Slash entfernt werden?
Wenn du die Funktion zum Suchen eines Zeichens und jene zum Extrahieren einer Zeichenkette nicht gefunden hast, und das sind nun wirklich Allerweltsbasisimmerwiedergutzugebrauchenfunktionen, dann kann deine Verzweiflung nicht allzu groß gewesen sein.
Suche mit strpos() die Position des ersten Schrägstrichs und trenne mit substr() alles ab Zeichen 0 in Länge entsprechend der gefundenen Position ab.
Hello,
$test = "satz1/irgendwas2";
Du kannst auch mit der Kanone auf die Spatzen schießen:
$_parts = explode('/',$test);
Danach steht in $_parts[0] der Teil des Strings vor dem ersten '/' drin.
http://de2.php.net/manual/en/function.explode.php
Ein harzliches Glückauf
Tom vom Berg
Lieber jojo,
$test = preg_replace('~(.*)/[^/]+$~', '\\1', "satz1/irgendwas2");
obiger Code entfernt alles nach dem _letzten_ Slash und selbigen auch.
Liebe Grüße aus Ellwangen,
Felix Riesterer.
Hello Felix,
$test = preg_replace('~(.*)/[^/]+$~', '\\1', "satz1/irgendwas2");
Das ist jetzt aber schon fast eine Atombombe auf einen Spatzen :-)
Ein harzliches Glückauf
Tom vom Berg