Autor Zpráva
Marek12345-9
Profil *
Dobrý deň,
potrebujem toto uraviť tak aby keď na konci tagu je lomitko /> nenahradilo a keď nieje nahradilo
ide oto že kód je
 <img blablabla /> //nenahradí
 <img blabla > //nahradía to 
 

a to isté hr|meta|link|br|base|frame|input len neviem ako to urobiť aby bralo iba to čo potrebujem
$content = preg_replace("/<(img|hr|meta|link|br|base|frame|input)([^>]*)>/mi", "<$1$2 />", $content);
Kajman_
Profil *
([^>]*[^\\/])?>/mi
Chamurappi
Profil
Reaguji na Kajmana:
Myslím, že tak snadno to nepůjde, protože do [^>]* se vsákne i to lomítko.


Reaguji na Marka12345-9:
Jestli má jít o výčet prázdných elementů, ještě ti tam chybí <area>, <col>, <embed>, <param> a <wbr>.
K čemu to potřebuješ? Pokud používáš HTML, prohlížeče ta lomítka stejně ignorují.
Marek12345-9
Profil *
ide o w3C, plugin a toto by malo ísť no nejde...
Chamurappi
Profil
Reaguji na Marka12345-9:
ide o w3C
Proč? Optimalizuješ kód primárně pro W3C validátor? Zkus jiný.
V HTML je to lomítko nadbytečné a kdybys používal XHTML, tak by ti bez lomítka naopak stránka nefungovala.
Kajman_
Profil *
Chamurappi:
do [^>]* se vsákne i to lomítko

Poslední znak nesežere *, po hvězdičce je tam povinný právě jeden znak různý od lomítka.
Marek12345-9
Profil *
tak horný problém vyriešený použil som
str_replace("/>", ">", $content)

no teraz ešte potrebujem toto
rozchodiť a neviem kde mám chybu

$output = preg_replace("/<html dir=([a-z]*) lang=([a-z]*)>/im", "<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=$2 lang=$2>", $output);
  
podla mňa mi tam niečo chýba ale čo to neviem
peta
Profil
Marek12345-9:
<?php
@ini_set('error_reporting',E_ALL);
@ini_set("display_errors","on");
error_reporting(E_ALL);

$output = '
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml" dir="ltr" lang="en" id="vbulletin_html">
';
echo '<br>'.htmlspecialchars($output);
$output = preg_replace("/<html dir=([a-z]*) lang=([a-z]*)>/im", "<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=$2 lang=$2>", $output);
echo '<br>'.htmlspecialchars($output);
?>


Nevim, jak ty, ale ja vidim spoustu jinych znaku nez mas tvuj reg. vyraz. Ten je vyhovuje kombinaci
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml" dir="ltr" lang="en" id="vbulletin_html">

regularni vyraz vsak vyhovuje jen pro kombinaci
<html dir=ltr lang=en>

Nesmis tam dat ani zalomeni radku, ani mezeru navic, jinak se to nechyti.
<html  dir=ltr lang=en>

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: