jojo: Alle Zeichen nach / löschen!

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!

  1. 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

    --
    "It's amazing I won. I was running against peace, prosperity, and incumbency."
    George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
    Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
    1. 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

      1. 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

        --
        Nur selber lernen macht schlau
        http://bergpost.annerschbarrich.de
        1. [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! =D

          Wenn 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

          --
          When the limos return for their final review, it's all thru'
          - all they can see is the morning goo.
          "There's no-one left alive - must be draw."
          So the Blackcap Barons toss a coin to settle the score.
          ie:{ fl:( br:< va:) ls:? fo:| rl:? n4:° ss:{ de:] js:| ch:? mo:| zu:|]
  2. 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.

  3. 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

    --
    Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de
  4. 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.

    --
    ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
    1. 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

      --
      Nur selber lernen macht schlau
      http://bergpost.annerschbarrich.de