| | |
| Stránka: 1 z 1
| [ Príspevkov: 6 ] | |
Autor | Správa |
---|
Registrovaný: 17.10.08 Prihlásený: 18.11.15 Príspevky: 35 Témy: 10 | Napísal Karo88: 26.03.2011 19:23 | |
|
Dobrý deň,
potrebujem prísť nato čo bude lepšie pre použitie nahradenia znakov $1, $2, $3, $4... za ([0-9]*)
Kód: a = 'modules.php?name=Statistics&op=DailyStats&year=$1&month=$2&date=$3' $match_count = substr_count(a, '$'); $match_count = $match_count + 1; for ($i = 1; $i < $match_count; $i++) { $a = str_replace('$'.$i, '([0-9]*)', $a); } má to len menší nedostatok a to že sem tam býva počítanie $ správne ale označenie číslom už nie, napr. modules.php?name=Statistics&op=DailyStats&year=$1&date=$3 a neviem ako to ošetriť prípadne cez preg_replace ale vtom sa viem zaamotať dokonca som našiel niečo čo funguje pri htaccess ale to zase po dlhom skúšaní a menení aj tak nejde ako by som si prestavoval a tu je niečo čo by sa možno dalo lepšie upraviť no neviem ako zatial Kód: function preg_replace_with_braces($Regexp,$Remplacement,$Texte) { preg_match_all($Regexp,$Texte,$Resultats,PREG_SET_ORDER); $SVGRemplacement=$Remplacement; foreach($Resultats as $Resultat) {//For each result $Remplacement=$SVGRemplacement; foreach($Resultat as $n=>$Match) {//For each set of capturing parenthesis if($n>0 && strpos($Match,'{')!==false) {//We find a open brace in our regexp : we'll need to find the closing one ! $InitialMatch=$Match; $Offset=strpos($Texte,$Resultat[0]); $Offset=strpos($Texte,$Match,$Offset);//We move the caret to the good place : let's start ! $Depart=$Offset; $Taille=strlen($Texte); $NestingLevel=0; while($NestingLevel>=0 && $Offset<$Taille) {//Browse the string, searching for braces. Perhaps the most important place ! $Offset++; if($Texte[$Offset]=='{') $NestingLevel++; elseif($Texte[$Offset]=='}') $NestingLevel--; } $Match=substr($Texte,$Depart,$Offset-$Depart); $Resultat[0]=str_replace($InitialMatch,$Match,$Resultat[0]); } $Remplacement=str_replace('$' . $n,$Match,$Remplacement); } $Texte=str_replace($Resultat[0],$Remplacement,$Texte); } return $Texte; }
|
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 Bydlisko: Bratislava |
toto ti nevyhovuje?
Kód: preg_replace("/\\$[0-9]+/", "([0-9]*)", $str);
_________________ NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE |
|
Registrovaný: 17.10.08 Prihlásený: 18.11.15 Príspevky: 35 Témy: 10 | Napísal autor témy Karo88: 28.03.2011 14:14 | |
|
tak to je paráda ďakujem a ešte by som chcel spýtať či na internete nieje nejaký dobrý návod na tieto regulérne výrazy lebo teraz potrubujem ešte $pa_z0_9_1 ale pritom tá posledná jedno sa mení až do neviem koľko... skúšal som
Kód: preg_replace("/\\$[pa_z0_9_][0-9]+/", "([a-z0-9\-]*)", $vyraz);
a som s toho pravdu povediac už zase lama
|
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 Bydlisko: Bratislava |
_________________ NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE |
|
Registrovaný: 17.10.08 Prihlásený: 18.11.15 Príspevky: 35 Témy: 10 | Napísal autor témy Karo88: 28.03.2011 16:17 | |
|
práve tam som bol aj som googlil a neostal som o moc múdrejší, kde robím chybu neviem asi kúpim nejakú príručku s príkladmi lebo fakt neviem ako
Kód: preg_replace("/\\$[pa_z0_9_][0-9]+/", "([a-z0-9\-]*)", $vyraz);
toto nejde a neviem ani potom aka by to malo byť keď základ je $pa_z0_9_ a na konci bude rôzne číslo
výslední tvar môže byť $pa_z0_9_1, $pa_z0_9_5 atď, podla mna to bude rozkúskované natri časti a to $ potom pa_z0_9_ a nakoniec číslo ktoré sa mení
|
|
Registrovaný: 05.09.09 Príspevky: 1141 Témy: 127 Bydlisko: Lehota pod ... | Napísal camo: 29.03.2011 17:18 | |
|
|
|
| Stránka: 1 z 1
| [ Príspevkov: 6 ] | |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|