• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

URL aus text parsen

Ich hab' ihm jetzt gesagt, dass er all die Zeichen, die da stehen nahmen soll und keine anderen. Ist einfacher.
 
Zuletzt bearbeitet:
Das du den Regulären ausdruck umbauen musst.

Hätt ich aber jetzt keine Lust zu.

Wenn mich nicht alles täuscht, brauchst du dazu negativ lookbehind - ich weiß aber nicht, ob JS das kann.
 
Zuletzt bearbeitet:
ist ein ticketsystem, bei dem die URLs der Mitteilung nochmal als link aufgelistet werden. Kann mich also nicht auf die Intelligenz des Posters verlassen.
 
ist ein ticketsystem, bei dem die URLs der Mitteilung nochmal als link aufgelistet werden. Kann mich also nicht auf die Intelligenz des Posters verlassen.
Sprich: Text und URL sind nicht durch z.B. Leerzeichen voneinander zu unterscheiden? Dann dürfte es schwer werden, selbst ein Mensch dürfte dann seine Schwierigkeiten haben.
 
Sprich: Text und URL sind nicht durch z.B. Leerzeichen voneinander zu unterscheiden? Dann dürfte es schwer werden, selbst ein Mensch dürfte dann seine Schwierigkeiten haben.

nein ich denke eine funken hirn spreche ich den usern dennoch zu, dass sie die URL mittels Leerzeichen vom text trennen. es geht darum, dass es URLs gibt mit kommas, aber man auch einen nebensatz mit einem Komma direkt nach der URL versieht, mit anschließenden Leerzeichen. Beispiel:

HTML:
Hallo hier eine URL http://www.domain.de/index.php?task=124,325,2,34435, die ich dir schicken wollte!
 
also wenn da zB der link drinsteht:
HTML:
http://www.domain-kat.de/artikel.php?a=act&u=19350&i=90615002

kommt da
HTML:
www.domain

raus :(

EDIT: also wenn ich bindestrich rausnehme dann harkt der am fragezeichen
kann man denn nicht nur nach nem leerzeichen stoppen?
 
Zuletzt bearbeitet:
PHP:
<?php
// den Hostnamen aus URL holen
preg_match(
    '@(?:[url]http://)([/url][^\s\n\r]+)@i',
    " der Link heißt: [url=http://www.php.net/index.html]PHP: Manual Quick Reference[/url] und nicht anders",
    $treffer
);
echo $treffer[1];
?>
Sucht bis zum nächsten Leerzeichen / Zeilenumbruch - ein Satzzeichen da dann am Ende musst du hald dann per Hand abschneiden.
 
ich benutze das hier

PHP:
function parseURL($text)
{
	$pattern = '!(((https?|ftp|file)://)|(www.))[-A-Z0-9+&@#/%?=~_|:.;,]*[-A-Z0-9+&@#/%=~_|]!is';
  	return preg_replace_callback($pattern, "replaceLinkCallback", $text);
}

function replaceLinkCallback($matches)
{
    // http davor schreiben wenn Link mit www. startet, da der sonst relativ interpretiert wird
    if($matches[1] == 'www.')
    {
        $matches[0] = sprintf('http://%s', $matches[0]);
    }

    
    return sprintf('<a href="%s">%s</a>', $matches[0], $matches[0]);
}

funktioniert bei Links mit ? und , drinne. Ob der Satzzeichen am Ende ignoriert mußt du mal ausprobieren.
 
Zurück
Oben