kostenloser Webspace werbefrei: lima-city


Per PHP etwas aus einem String auslesen

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    mace

    mace hat kostenlosen Webspace.

    Moin,

    ich hab in so fern ein Problem. Ich habe einen Text, namentlich $text , und irgendwo in diesem Text befindet sich folgende Zeile :

    [url=Adresse]Beschreibung[/url]


    Jetzt w?rde ich gerne aus dem $text rauslesen, ob einmal die URL-Tag in dem Text drin ist und zweitens dann die Adresse und Beschreibung auslesen.

    Wisst ihr wie das geht?

    mace
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Du kannst mit einem Filter nach dem Vorkommen von markanten Textzeichen in der Variablen suchen lassen.

    Anschlie?end kannst Du in der Variablen die Position bestimmen und die gew?nschten Stellen "herauskopieren" und in eine neue Variablen "reinsetzen".

    Sinnvolle und umfassende Erkl?rungen hierzu findets Du hier:
    http://www.schattenbaum.net/php/
  4. Moin, moin (ganz fr?her Moin :wink:)!

    Hier mal ein Ansatz, f?r Adresse und Beschreibung:

    preg_match("|\[url=([\]]{1,})\]([\[]{1,})\[\url]|", $text, $matches, PREG_OFFSET_CAPTURE);
    print_r($matches);


    Schau dir dann mal das Array $matches an, dort m?ssten der
    gesamte Suchstring ($matches[0][1]),
    die "Adresse" ($matches[1][1]) und
    die "Beschreibung" ($matchse[2][1]) stehen.

    Weitere Infos unter:
    http://de2.php.net/manual/de/function.preg-match.php

    MfG
    alopex
  5. Autor dieses Themas

    mace

    mace hat kostenlosen Webspace.

    Schonmal danke,

    aber wenn ich das jetzt ausprobiere steht bei mir :

    Warning: Compilation failed: PCRE does not support \L, \l, \N, \P, \p, \U, \u, or \X at offset 31 in /www/htdocs/etuel/_include/_bb.php on line 32

    Der Code selber ist jetzt :

    preg_match("|\[url=([\]]{1,})\]([\[]{1,})\[\url]|", $beitragstext, $matches, PREG_OFFSET_CAPTURE);
    
    $beitragstext = str_replace($matches[0][1],'<a href='.$matches[1][1].'>'.$matches[2][1].'</a>',$beitragstext);


    mfg mace
  6. Tschuldschung, mei F?hler!

    Nat?rlich muss es "...\[/url\]" hei?en und nicht "...\[\url\]".
    Aus dem Backslash "\" vor dem kleinen "u" muss ein Slash "/" werden.
  7. Autor dieses Themas

    mace

    mace hat kostenlosen Webspace.

    Schonmal danke, aber irgendwas klappt immer noch nicht.. ?)

    Ich hab mal das ausprobiert :

    preg_match("|\[url=([\]]{1,})\]([\[]{1,})\[/url]|", $beitragstext, $matches, PREG_OFFSET_CAPTURE);
    
    $beitragstext = str_replace($matches[0][1],'<a href='.$matches[1][1].'>'.$matches[2][1].'</a>',$beitragstext);


    Wenn ich das mache, kommt aber nur das heraus

    Adresse

    Dann hab ich mal das ausprobiert :

    preg_match("|\[url=([\]]{1,})\]([\[]{1,})\[/url]|", $text, $matches,PREG_OFFSET_CAPTURE);
       
        print($matches[0][1]);
        print($matches[1][1]);
        print($matches[2][1]);


    Da kam als Ausgabe gar nichts..

    mfg Mace
  8. Sorry, sorry, sorry!

    Aber meine urspr?ngliche Antwort habe ich zu einer absolut unchristliche Uhrzeit verfasst, und da sind mir wohl ein paar Fehler unterlaufen:

    Neuer RegExp-Versuch:
    preg_match("|\[url=([\]]{1,})\]([\[]{1,})\[/url\]|", $text, $matches, PREG_OFFSET_CAPTURE);
    print_r($matches);


    Treffer-Array:
    Schau dir dann mal das Array $matches an, dort m?ssten der
    gesamte Suchstring ($matches[0][0]),
    die "Adresse" ($matches[1][0]) und
    die "Beschreibung" ($matches[2][0]) stehen.

    Wenn du noch nie mit "regul?ren" Ausdr?cken (hier Perl-Syntax) gearbeitet hast, ist das nat?rlich erstmal alles ziemlich unverst?ndlich. Zur Fehlersuche ist der print_r()-Befehl sehr n?tzlich, der stellt das ganze Array $matches in einer Baumstruktur dar, dort sieht man dann auch, welche Indizes verwendet werden m?ssen, um die richtigen Werte auszulesen. Au?erdem lohnt sich ein Blick in die Server-Errorlogs (zumindest unter Windoze).

    Funktions-Dokumentation:
    http://de2.php.net/manual/de/function.preg-match.php

    PCRE-Dokumentation (nur englisch):
    http://de.php.net/manual/de/reference.pcre.pattern.syntax.php

    MfG
    alopex
  9. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!