Morten: Resource, die String auftrennt und etwas einfügt

Hallo!

Ich suche eine Resource in PHP, die in einen String reingehen kann, ihn bei einem beliebigen Zeichen trennen kann und vor dem Zeichen dann etwas einfügen kann und am Ende das ganze wieder in einen String umwandelt.
Gibt es eine solche Resource in PHP?

Schönes Wochenende,
Morten

  1. Hallo Morten.

    Ich suche eine Resource in PHP,

    „Resource“ == „Funktion“?

    die in einen String reingehen kann, ihn bei einem beliebigen Zeichen trennen kann und vor dem Zeichen dann etwas einfügen kann und am Ende das ganze wieder in einen String umwandelt.

    Wenn du „bei einem beliebigen Zeichen trennen“ näher erläuterst, kann man dir sicher präzisere Hinweise geben. Fürs erste klingt es, als suchtest du explode und implode.

    Einen schönen Sonntag noch.

    Gruß, Mathias

    --
    ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
    debian/rules
    1. „Resource“ == „Funktion“?

      Jep, mit Resource meine ich Funktion.

      Ich habe ein Gästebuch geschrieben, in dem man seine E-Mail-Adresse angeben muss. Die soll allerdings nicht so einfach unverziert dastehen, sondern bevor sie in die Datenbank geschrieben wird, von einer Funktion beim "@" aufgetrennt werden. Vor dem "@" soll dann ein !KEINSPAM! eingefügt werden und die Mail-Adresse wieder von einem Array in einen String umgewandelt werden.

      explode() und implode() sind nicht ganz das, was ich meine.
      Gibt es für das, was ich suche, eine passende Funktion?

      Schönes Wochenende,
      Morten

      1. echo $begrüßung;

        Vor dem "@" soll dann ein !KEINSPAM! eingefügt werden

        Du willst also das @ durch !KEINSPAM!@ ersetzen: str_replace().

        Ich halte es aber für keine gute Idee, in der Datenbank verfälschte Daten abzulegen. Wenn du für die Ausgabe im HTML-Text solch eine Veränderung vornehmen willst, dann mach das doch auch erst für diese Ausgabe. In einer Datenbank sollten immer Roh-Daten abgelegt werden. Wer weiß, was du in Zukunft noch alles damit machen willst, eine spezielle Ausgabeformatierung steht dem neuen Anwendungsfall oft kontraproduktiv entgegen.

        echo "$verabschiedung $name";

        1. Ich halte es aber für keine gute Idee, in der Datenbank verfälschte Daten abzulegen. Wenn du für die Ausgabe im HTML-Text solch eine Veränderung vornehmen willst, dann mach das doch auch erst für diese Ausgabe.

          Das geht leider nicht, weil ich die Datenbank-Einträge mit einer foreach -Schleife auslese. Ich werde noch mal gucken, ob sich das anders machen lässt, aber fürs Erste bin ich ganz froh, dass es überhaupt funktioniert.

          if ($wochentag == sontag || $wochentag == samstag) {
          echo "Schönes Wochenende, \n Morten";
          }

          1. Hello,

            [...] fürs Erste bin ich ganz froh, dass es überhaupt funktioniert.

            Dann werden wir Dich bestimmt noch oft wiedersehen hier? :-)

            Auch Dir ein schönes Wochenende
            und
            Harzliche Grüße vom Berg
            http://www.annerschbarrich.de

            Tom

            --
            Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
            Nur selber lernen macht schlau

          2. echo $begrüßung;

            Das geht leider nicht, weil ich die Datenbank-Einträge mit einer foreach -Schleife auslese.

            Und? Das Auslesen aus der Datenbank hat ja nicht zwangsläufig eine sofortige Ausgabe zur Folge.

            echo "$verabschiedung $name";

      2. Hallo Morten.

        „Resource“ == „Funktion“?

        Jep, mit Resource meine ich Funktion.

        Ich habe ein Gästebuch geschrieben, in dem man seine E-Mail-Adresse angeben muss. Die soll allerdings nicht so einfach unverziert dastehen, sondern bevor sie in die Datenbank geschrieben wird, von einer Funktion beim "@" aufgetrennt werden. Vor dem "@" soll dann ein !KEINSPAM! eingefügt werden und die Mail-Adresse wieder von einem Array in einen String umgewandelt werden.

        Nun, da du genauer beschrieben hast, was du vorhast, kann man dich auf strpos und substr verweisen. Mit ersterem suchst du die Position des „@“-Zeichens und mit zweiterem zerteilst du den String temporär zum einfügen der Zeichenkette.

        Im Übrigen bin ich der Meinung, dass die E-Mail-Adressen unbehandelt in der Datenbank abgelegt und erst bei der Ausgabe manipuliert sollten. So musst du dir bei anderweitigen Ausgaben keine Gedanken darüber machen, wie du ggf. das „!KEINSPAM!“ wieder entfernst.

        Einen schönen Sonntag noch.

        Gruß, Mathias

        --
        ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
        debian/rules
      3. Hello,

        explode() und implode() sind nicht ganz das, was ich meine.
        Gibt es für das, was ich suche, eine passende Funktion?

        Auch wenn mir die Sinnhaftigkeit Deiner Aktion fremd bleibt:

        $adresse = substr_replace($adresse_alt,'!NOSENSE!',strpos($adresse_alt,'@'),0);

        Das ist aber nur rudimentär, denn was passiert, wenn kein @ enthalten ist?
        Was passiert, wenn mehrere @-Zeichen enthalten sind?
        Was passiert, wenn der String o zeichen lang ist?

        Außerdem sollten in der DB nur Reindaten eingetragen werden, ohne Formatierungen und Manipulationen. Die kann man ja beliebig bei der Ausgabe einfügen.

        Harzliche Grüße vom Berg
        http://www.annerschbarrich.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau

  2. Hello,

    Ich suche eine Resource in PHP, die in einen String reingehen kann, ihn bei einem beliebigen Zeichen trennen kann und vor dem Zeichen dann etwas einfügen kann und am Ende das ganze wieder in einen String umwandelt.

    Das ist doch schon eine wunderbare Funktionsbeschreibung.
    Schreib Dir eine eigene unter Verwendung der Stringfunktionen
    http://www.php.net/manual/en/ref.strings.php

    in dBase gibt es die wunderbare Funktion "stuff()".
    PHP kennt die leider nicht.

    Aber es gibt
    http://www.php.net/manual/en/function.strpos.php
    http://www.php.net/manual/en/function.substr-replace.php

    Daraus solltest Du es zusammenbauen können.

    Harzliche Grüße vom Berg
    http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau

    1. Vielen, vielen Dank, mit den beiden Funktionen und explode() hat das geklappt. :)

      Schönes Wochenende,
      Morten