Autor | Zpráva | ||
---|---|---|---|
Jose Profil * |
#1 · Zasláno: 12. 1. 2013, 16:53:56
zdravim
ako mam cez regex, replace alebo inu funkciu vymazat vsetko pred zatvorkou + zatvorky napr. mam vypis v PHP 10 EUR (300 Kč) a ja z toho potrebujem dostat len 300 Kč isto sa to robi cez www.phpf1.com/tutorial/php-regular-expression.html vdaka za pomoc |
||
Keeehi Profil |
#2 · Zasláno: 12. 1. 2013, 17:10:42
Třeba takto:
echo preg_replace('~\d+ EUR \((\d+) Kč\)~', '$1', $vstup); |
||
Jose Profil * |
#3 · Zasláno: 12. 1. 2013, 19:39:11
Dik a neda sa to nejako univerzalnejsie? Lebo namiesto Kč tam moze byt ina mena napr. Sk
|
||
DarkMeni Profil |
když víš, že sou tam ty závorky, a sou tam jen jednou, a ty hledáš celý obsah uvnitř nich, tak tam nemusíš dávat regularní výrazy, ale stačí najít pozici otevření závorky:
<?php $string = '10 EUR (300 Kč)'; echo substr($string, strpos('(', $string), -1); ?> preg_match by mohl vypadat: <?php $string = '10 EUR (300 Kč)'; preg_match('/\(.*?\)/', $string, $match); echo $match[1]; //var_dump($match); ?> ale myslim že by zpracovávání trvalo dýl (než přes substring) / ten rozdíl při jednom spušnětní nepude vidět, ale třeba při milion krát opakujícím se cyklu už ty milivteřinový odchylky být můžou :D |
||
Jose Profil * |
#5 · Zasláno: 13. 1. 2013, 16:39:41
diky moc a nevies ako by to bolo cez smarty?
regex_replace:'nieco tu ma byt':'/\(.*?\)/' |
||
Jose Profil * |
#6 · Zasláno: 13. 1. 2013, 17:46:49
cez tuto funkciu http://www.smarty.net/docsv2/en/language.modifier.regex.replace.tpl
|
||
DarkMeni Profil |
Můžeš to udělat normálně v obyčejným php bez templatu
Smarty neznám, ale tipnu si že by to mělo být: regex_replace:'/\((.*?)\)/':'$1' //ale to nevim jestli udělá to, co chceš, takže možná: regexp_replace:'/.*?\((.*?)\).*?/':'$1' preg_match stačí i když ve smarty by měl asi jinou syntaxi, ale i když používáš template, tak pořát můžeš nějakou část kódu napsat jen v php |
||
Jose Profil * |
#8 · Zasláno: 13. 1. 2013, 19:16:58
to druhe je spravne
dakujem |
||
Časová prodleva: 11 let
|
0