kostenloser Webspace werbefrei: lima-city


Alle http* in einem String in URLs wandeln

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    m******e

    Huhu,

    wenn ich einen (PHP)tag/string">String habe, Beispiel..
    $zeichenkette='hallo, besucht mich unter http://lalabla.eu und http://www.knaster.me';
    .. oder ähnlich, wie kann ich alle Text-URLs (welche mit http oder https beginnen) am kürzesten bzw. effektivsten automatisch in URLs wandeln?

    Mit match()? Oder replace()?

    Die URLs im String sollen in diesem Fall einen BB-Code verpasst bekommen:
    $zeichenkette='hallo, besucht mich unter [url=http://lalabla.eu]http://lalabla.eu[/url] und [url=http://www.knaster.me]http://www.knaster.me[/url]';

    Ich weiß, die Frage ist nicht sonderlich schwer, allerdings geht es mir um die kürzeste Variante.

    :)

    Beitrag zuletzt geändert: 26.4.2013 18:25:24 von menschle
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

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

  3. kochmarkus

    Co-Admin Kostenloser Webspace von kochmarkus

    kochmarkus hat kostenlosen Webspace.

    Hi, sehr kurz aber nicht perfekt:
    $zeichenkette = 'hallo, besucht mich unter http://lalabla.eu und http://www.knaster.me';
    $suchmuster = '#(https?\://.+?)\s#i';
    $ersetzung = '[url=${1}]${1}[/url] ';
    echo preg_replace($suchmuster, $ersetzung, $zeichenkette);


    Das Proble, ist, nach deiner knaster.me URL ist kein Whitespace mehr welches ich als Kriterium für das Ende einer URL verwendet habe.

    Beitrag zuletzt geändert: 26.4.2013 16:44:30 von kochmarkus
  4. Autor dieses Themas

    m******e

    Ein Whitespace wäre nicht das Problem.

    :)

    PS: Übrigens ein dickes THX für die rasche Antwort.

    Beitrag zuletzt geändert: 26.4.2013 18:27:23 von menschle
  5. /(http[.\S]*)/
    matcht auch den letzen Link :wink:
  6. Autor dieses Themas

    m******e

    tobiworlds schrieb:
    /(http[.\S]*)/
    matcht auch den letzen Link :wink:
    Und wo genau? An welcher Stelle müsste bei..

    kochmarkus schrieb:
    $zeichenkette = 'hallo, besucht mich unter http://lalabla.eu und http://www.knaster.me';
    $suchmuster = '#(https?\://.+?)\s#i';
    $ersetzung = '[url=${1}]${1}[/url] ';
    echo preg_replace($suchmuster, $ersetzung, $zeichenkette);
    .. ergänzt werden?
  7. Das ist ein verbessertes Pattern/Suchmuster.

    $zeichenkette = 'hallo, besucht mich unter http://lalabla.eu und http://www.knaster.me';
    $suchmuster = '/(http[.\S]*)/';
    $ersetzung = '[url=${1}]${1}[/url]';
    echo preg_replace($suchmuster, $ersetzung, $zeichenkette);


    So funktioniert es...

    Beitrag zuletzt geändert: 26.4.2013 19:07:04 von tobiworlds
  8. Autor dieses Themas

    m******e

    Ersteinmal ein dickes Dankeschön euch. :)

    Nun hatte ich beide Varianten Hardcore-Technisch (im laufendem Betrieb, und abhängig von allen anderen Scripts) durchgespielt, und beides funktionierte auch auf Anhieb.

    Entschieden habe ich mich nun für folgende (kurze) Variante:
    $zeichenkette=preg_replace('/(http[.\S]*)/','[url=${1}]${1}[/url]',$zeichenkette);

    Hintergründe
    Worum gehts genau? Kurz gesagt:
    In diesem Fall um meine Signatur hier bei Lima-City - aber nicht nur.

    Da es in anderen Foren auf anderen Boards leichter ist, automatisch aktualisierte Signaturen (zB in Bildern) anzeigen zu lassen, konnte ich meine bisherigen Scripte hier bislang nicht einsetzen.

    Nun twittere ich allerdings - mal mehr, mal weniger - sehr gerne, und so reizte es mich, meinen letzten Tweet in meiner Signatur anzeigen zu lassen.

    Dank tchab, welcher aufgrund eigener Ideen und Ziele (und einen ganzen Tag Vorarbeit) mich auf neue Gedanken brachte - und auch kochmarkus und tobiworlds, die prompt weiterhalfen - bin ich nun ein ganzen Schritt weiter.

    Danke euch.
    :)
  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!