[linux] regexp v php

Ján Tomka jan.tomka na stonline.sk
Pátek Leden 25 02:59:58 CET 2002


On Thu, Jan 24, 2002 at 10:56:13AM +0100, Klimo Peter wrote:
> 	$file_text = eregi_replace("\ [a-z]*=\"[a-zA-Z0-9\ %;\.-:#]*\"", "",
> $file_text);
> 
>    <td style="mso-border-left-alt: solid windowtext .5pt; background-color:
> #D9D9D9; background-repeat: repeat; background-attachment: scroll;
> mso-shading: white; mso-pattern: gray-15 auto; border-left-style: none;
> border-left-width: medium; border-right: .5pt solid windowtext; border-top:
> .5pt solid windowtext; border-bottom: .5pt solid windowtext; padding-left:
> 3.5pt; padding-right: 3.5pt; padding-top: 0cm; padding-bottom: 0cm;
> background-position: 0% 50%">
> 
> poradte please, kde robim chybu ....

minimalne je chyba to, ze robis "[a-zA-Z0-9\ %;\.-:#]*" namiesto "[^"]*"
a tiez [a-zA-Z], ked mas eregi funkciu. a nazov atributu moze obsahovat
aj cislice a pomlcku. a hodnota moze byt uzavreta v apostrofoch alebo
uvodzovkach. je tam dost vela pravidiel a veci, ktore su zakazane, ale
pouzivaju sa...

skus totok:
eregi_replace('[[:blank:]]+[a-z0-9-]+(=([^\'"]+|"[^"]*"|\'[^\']*\'))?',
              '', $s);

malo by zvladnut vsetky styri sposoby uvadzania atributov, tzn. ze z
<td att0 att1=val1 att2="v a l 2" att3='v a l 3'> vrati <td>. jo, ale
bacha na tagy na viacerych riadkoch.

znak > v hodnote atributu byt moze, nesmie tam byt <, & (ak nie je
zaciatok entity) a typ uvodzovky, v ktorej je hodnota uzavreta. ale ja
by som sa na to nespoliehal, vsetci skusaju, ci browser vyda a napr.
skripty to obsahuju casto: onmouseover="if (a < b && a < c) ...".
malo by byt spravne &lt; a &amp;, ale este som take nevidel, aby to
niekto dodrziaval.

	judas
-- 
[judas na hell judas]$ whatis life
life: nothing appropriate
------------- další část ---------------
Netextová příloha byla odstraněna...
Jméno: [žádný popis není k dispozici]
Typ: application/pgp-signature
Velikost: 232 bytes
Popis: [žádný popis není k dispozici]
Url : http://lists.linux.sk/pipermail/linux/attachments/20020125/107933cd/attachment.bin 


Další informace o konferenci linux