| Autor | Zpráva | ||
|---|---|---|---|
| Kajik12 Profil * |
Zdravím, mám kód
$string = ereg_replace("\[SIZE=([0-9])\](.*)\[/SIZE\]", '<font size="\\1">\\2</font>', $string);proměnná $string v tomto případě obsahuje např. [SIZE=4][COLOR=#4169E1]text[/COLOR][/SIZE][SIZE=4][/SIZE] výše zmíněný script z tohoto kódu ovšem udělá <font size="4">[COLOR=#4169E1]text[/COLOR][/SIZE][SIZE=4]</font> vezme veškerý text mezi prvním size a posledním uzavřením size, takže [/SIZE][SIZE=4] zůstane. Mou otázkou je, jak docílit toho, aby to bralo prvni [/SIZE] na které natazí v textu? Předem děkuji, reguláry moc neovládám. Moderátor Joker: Titulek „Regulární výrazy“ byl moc obecný, změnil jsem ho.
|
||
| Joker Profil |
#2 · Zasláno: 25. 6. 2011, 22:04:18
Kajik12:
POSIXové regulární výrazy (funkce ereg*) byly zavrženy ve prospěch Perl-compatible regulárních výrazů (funkce preg*). Jinak problém řeší tzv. líné kvantifikátory. Tady je to (mnou) vysvětlené. |
||
| Kajik12 Profil * |
#3 · Zasláno: 25. 6. 2011, 22:21:36
nyní to mám takhle:
$string = preg_replace("/\[SIZE=([0-9])\](.*?)\[/SIZE\]", '<font size="$1">$2</font>', $string);ale také warning a žádný $string Warning: preg_replace() [function.preg-replace]: Unknown modifier 'I' in /var/www/..../index.php on line 159 |
||
| Kajik12 Profil * |
#4 · Zasláno: 25. 6. 2011, 23:03:36
vyřešeno % místo / a na konci. Děkuji jokerovi za hlavní radu.
|
||
|
Časová prodleva: 14 let
|
|||
0