Autor | Zpráva | ||
---|---|---|---|
Tomasekkkk Profil * |
#1 · Zasláno: 11. 12. 2007, 08:11:18
Zdravim vsechny, pro nekoho asi prkotina, mozna to ani nejde, ale myslim si, ze urcite pujde pomoci array nebo neco podobneho. A nyni k problemu. Vypisuju nektere clanky, rad bych pomoci eregi_replace (dobra volba?) udělal to, že když ve článku bude nějaké slovo, které budu mít v nějaké proměné např. (auto, motorka, domeček,...) se mi toto slovo ztuční, zatím to mám uděláno tak
eregi_replace("auto","<strong>auto</strong>", $text_clanku); eregi_replace("motorka","<strong>motorka</strong>", $text_clanku); existuje zpusob jak to udelat elegantneji nez takovym zpusobem kde budu mit dalsich 70 radku scriptu navic? :-) Diky za odpoved |
||
Mastodont Profil |
#2 · Zasláno: 11. 12. 2007, 08:31:19
Dej si ta slova do pole a pak v cyklu zpracuj všechny prvky pole.
|
||
Noem Profil * |
#3 · Zasláno: 11. 12. 2007, 08:49:20
alebo skus str_replace
|
||
Retal Profil |
#4 · Zasláno: 11. 12. 2007, 08:54:21 · Upravil/a: Retal
Můžeš použít http://cz.php.net/manual/en/function.str-replace.php, ta funkce chápe pole
nebo ještě lépe rozumný regexp preg_replace('@(auto|motorka)@iu', '<b>\1</b>', $s); |
||
Noem Profil * |
#5 · Zasláno: 11. 12. 2007, 08:54:26
$co = array("auto","motorka");
$cim = array("<strong>auto</strong>","<strong>motorka</strong>"); $clanok = str_replace($co,$cim,$clanok); |
||
Tomikkkkkk Profil * |
#6 · Zasláno: 11. 12. 2007, 08:57:02
Retal
Diky asi zkusim toto, muzes mi jen vysvetlit proc je pred tim znak zavinac a na konci za zavinacem iu? '@(auto|motorka)@iu' ??? Diky |
||
Retal Profil |
#7 · Zasláno: 11. 12. 2007, 09:25:07
Zavináč je moje oblíbené ohraničení regulárního výrazu, můžeš ale použít vpodstatě cokoliv, třeba tildu, lomítko atd. Modifikátor "i" znamená "neber ohled na velká a malá písmena", "u" znamená "řetězec je v kódování UTF-8".
|
||
Tomikkkkkk Profil * |
#8 · Zasláno: 11. 12. 2007, 10:01:45
Retal
Super, diky, ja tam nechal to u na konci a nefungovalo mi to, bylo to tim utf-8 tak jsem nechal to i a uz mi to funguje jak jsem chtel a to jsem tam zkousel strtolower apod. aby to nerozlisovalo velikost pisma :-) Diky |
||
Retal Profil |
#9 · Zasláno: 11. 12. 2007, 10:16:38
Pokud použiješ modifikátor "i", už nemusíš používat strtolower();.
|
||
Časová prodleva: 16 dní
|
|||
Kubista Profil |
#10 · Zasláno: 27. 12. 2007, 11:42:45
Zdravím, chci pomocí regulárního výrazu převést: [tucne]něco[/tucne] na <strong>něco</strong>.
Regulární výraz: $text = preg_replace("@(\[tucne\])(.*?)(\[\/tucne\])@ui", "<strong>\\2</strong>", "$text"); Funguje to do té doby, než zadám do proměnné $text: [tucne]něco něco dalšího [/tucne] tzn. když to není na jednom řádku. Můžete někdo prosím poradit? :-) |
||
Mastodont Profil |
#11 · Zasláno: 27. 12. 2007, 12:08:04
Modifikátory "ui" si rozšiř na "uim".
|
||
Kubista Profil |
#12 · Zasláno: 27. 12. 2007, 12:32:02
Mastodont
tak pomohlo "uis" díky za nasměrování na modifikátory :-) |
||
Mastodont Profil |
#13 · Zasláno: 27. 12. 2007, 12:46:25
Kruci, tyhle dva si pořád pletu.
|
||
Časová prodleva: 3 měsíce
|
|||
Gandalf Profil * |
#14 · Zasláno: 13. 3. 2008, 19:13:20
preg_replace('@(auto|motorka)@iu', '<b>\1</b>', $s);
něco podobného bych potřeboval, ale mám to složitější, požadovaná slova potřebuji opatřit hypertexty, tzn. že budou rozdílná předem známá url a titulky, je to tímhle způsobem proveditelné? |
||
Časová prodleva: 16 let
|
0