Autor Zpráva
ForestCZE
Profil
Ahoj, dokázal by mi někdo prosím pomoct? Mám tento regulární výraz pro převedení textu na odkaz při výpisu novinek:

$_POST["novinka"] = preg_replace('#(^|\s)([a-z]+://([^\s\w/]?[\w/])*)#is', '\\1<a class="odk" href="\\2">\\2</a>', $_POST["novinka"]);

Podobným způsobem bych potřeboval převést img src na obrázek. Když do databáze hodím:

<img src="img/obrazek.png" alt="obrázek" />

aby se mi ukázal ten daný obrázek. Předem děkuji za pomoc :)
Str4wberry
Profil
Když do DB uložíte <img src="img/obrazek.png" alt="obrázek" />, tak se obrázek neukáže? Co se tedy ukáže?
ForestCZE
Profil
Str4wberry:
No ukáže to ten html kód.
Str4wberry
Profil
A co by se mělo ukázat? Přímo by se měl vykreslit daný obrázek?
ForestCZE
Profil
Str4wberry:
Ano, přesně to bych potřeboval. Děkuji.
Str4wberry
Profil
Tak potom se někde mezi vložením příspěvku a jeho vypsáním převádějí řídicí znaky HTML (zejména <) na entity.

Řešení je tuto vlastnost odstranit, potom ale nepůjde normálně zapisovat HTML kód, který se má zobrazovat jako HTML kód.

Nebo použít pro zápis obrázku nějaký alternativní způsob – jako třeba na této diskusi se používá značka [img][/img] a podobně.
ForestCZE
Profil
Str4wberry:
a jak by to vypadlo s těmi tagy [img] [/img] ?
Str4wberry
Profil
Tady se používá tohle.
$pattern[] = "/\[img(left|right)?\](https?:\/\/([^<> \n]+?))\[\/img\\1?\]/i";
$replacement[] = '<img src="\\2" border="0" align="\\1">';

$nmsg = preg_replace($pattern, $replacement, $msg);
ForestCZE
Profil
Str4wberry:
Tak já se omlouvám. Ono to funguje v pohodě beze změny.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: