TheDragonworld Drachenburg Board

Bezirke der Bewohner => Projekt Dragonworld => Thema gestartet von: TheDragon [C] am 27.September.2012, 10:25:01



Titel: Links und Embedded Object aus Text erstellen
Beitrag von: TheDragon [C] am 27.September.2012, 10:25:01
Etwas sehr allgemeines, was es vielleicht schon gibt oder so ...

Es gibt auf der DW mehrere Bereiche wo User Texte schreiben (Infos, Tagebuch, Events, usw.)
Und ich fände es schön, wenn eingaben wir http://....... und www. ..... automatisch in Links konvertiert werden. Am besten bei der Ausgabe aus der Datenbank.
Ebenso wenn http://youtube.com?v=dsfgsdfdsdsf&blabla automatisch in ein Embedded Video Object umgewandelt wird. Fürs Forum werd ich übrigens schaun ob es dafür ein AddOn gibt.

Bisher habe ich nur eigene YouTube eingaben gemacht, wo ich dass dann umwandle. Ich zieh mir quasi den teil nach v=.... raus und schreib ihn nachher in das <object ...  an den richtige stellen.
Doch ich spreche von einer Umwandlung innerhalb einer langen String-Variable.

Möchte mir damit jemand helfen?


Titel: Re: Links und Embedded Object aus Text erstellen
Beitrag von: Fanir-Thuban am 09.Oktober.2012, 22:13:26
Ich könnte versuchen, so etwas in Python zu schreiben.
Für Firefox hab ich solche AddOns auf jeden Fall schon mal gesehen.


Titel: Re: Links und Embedded Object aus Text erstellen
Beitrag von: TheDragon [C] am 09.Oktober.2012, 22:46:34
es sollt unter PHP laufen und zwischen dem SQL lesen aus der Datenbank und dem echo im html style passieren.


Titel: Re: Links und Embedded Object aus Text erstellen
Beitrag von: Fanir-Thuban am 12.Februar.2014, 10:48:22
Öhm.. Ich hab den Thread gestern wiedergefunden und mich gleich mal drüber her gemacht. Das da ist dabei rausgekommen:

Code:
$regex = [
    // Regex #1: Youtube
    '/(\s|^)(' .                                                 // Whitespace davor
    'https?:\/\/(((www\.)?youtube(-nocookie)?\.com\/watch\?v=)|(youtu\.be\/))' . // Domain, Pfad
    '([a-zA-Z0-9_-]{8,16}' .                                     // Video-ID
    '([&\?]((t=[0-9hms]{2,9})|(list=[a-zA-Z0-9_-]{16,48})))?)' . // Zeit oder Liste
    '([&\?][a-zA-Z0-9_=-]+)*' .                                  // Anhängsel
    ')(\s|$)/'                                                   // Whitespace danach
    ,
    // Regex #2: URLs
    '/(\s|^)(' .                           // Whitespace davor
    '((https?|ftp):\/\/)' .                // Protokoll
    '([a-z0-9]([a-z0-9-]*[a-z0-9])?\.)+' . // Subdomains, Domain
    '([a-zA-Z]{2,16}\.?)' .                // TLD
    '(\/[\x23-\x7E!äöüÄÖÜß]*)*' .          // Anhängsel (Pfad, Parameter, Anker, ...)
    ')(\s|$)/'                             // Whitespace danach
];
$replace = [
    // Replace #1: Youtube
    '$1<iframe width="560" height="315" ' .
    'src="//www.youtube-nocookie.com/embed/$7" ' .
    'frameborder="0" allowfullscreen></iframe>$14'
    ,
    // Replace #2: URLs
    '$1<a href="$2">$2</a>$9'
];
$OUTPUT = preg_replace( $regex, $replace, $INPUT);

Im Anhang hängt der Rest der Datei, der Code hier ist der Teil, der die Ersetzungen macht.

Ich hoffe mal, dass das noch aktuell ist :)


Titel: Re: Links und Embedded Object aus Text erstellen
Beitrag von: TheDragon [C] am 12.Februar.2014, 12:41:28
Cool ... ich hab da erst gestern wieder daran gedacht, dass ich das mal irgendwann lösen sollte :)