Autor | Zpráva | ||
---|---|---|---|
nemeja Profil |
#1 · Zasláno: 2. 10. 2011, 14:02:56 · Upravil/a: nemeja
Zdravím, dnes již po druhé,
mám opět problém s regulárama. $co="GM"; $jak=3; preg_replace($co."=~.*?~","$co=$jak",$test[1]); Je to na práci s Ini souborem. Chyba: Warning: preg_replace() [function.preg-replace]: Delimiter must not be alphanumeric or backslash in C:\wamp\www\server\index.php on line 23 Děkuji za každou odpověd. |
||
Davex Profil |
#2 · Zasláno: 2. 10. 2011, 14:44:51
nemeja:
„Delimiter must not be alphanumeric or backslash“ Delimiter má být v regulárním výrazu na začátku a na konci. Ty ho máš ( ~ ) někde uprostřed a na konci.
|
||
nemeja Profil |
#3 · Zasláno: 2. 10. 2011, 14:48:46 · Upravil/a: nemeja
ok takže jsem to upravil takto
preg_replace("~$co=(.*?)~","$co=$jak",$test[1]); mělo by to upravit toto GM=1 na GM=3, ted to upraví na GM=31, chyba mezi židlí a klávesnicí, ale nevím kde :D |
||
Davex Profil |
#4 · Zasláno: 2. 10. 2011, 15:10:56
Podvýrazu
(.*?) vyhoví i nic, protože otazníkem na konci přepínáš režim na méně hladový a všechno za rovnítkem už výraz nepozře.
|
||
nemeja Profil |
#5 · Zasláno: 2. 10. 2011, 15:19:38
Davex:
OK moc děkuju. Funguje naprosto v pořádku |
||
o_O Profil |
#6 · Zasláno: 2. 10. 2011, 20:11:31 · Upravil/a: o_O
nemeja:
Jen doplním, že na práci s .ini soubory existuje v PHP funkce. |
||
nemeja Profil |
#7 · Zasláno: 2. 10. 2011, 22:21:31
o_O:
I na zápis? Jestli ano, tak mi ji prosím napiš |
||
Časová prodleva: 6 dní
|
|||
o_O Profil |
#8 · Zasláno: 8. 10. 2011, 12:39:33 · Upravil/a: o_O
nemeja:
Na zápis pravděpodobně neexistuje. (nenašel jsem) Dá se však jednoduše vyhledat na internetu: function write_ini_file($assoc_arr, $path, $has_sections=FALSE) { $content = ""; if($has_sections){ foreach($assoc_arr as $key=>$elem){ $content .= "[".$key."]\n"; foreach($elem as $key2=>$elem2){ if(is_array($elem2)){ for($i=0;$i<count($elem2);$i++){ $content .= $key2."[] = \"".$elem2[$i]."\"\n"; } }elseif($elem2=="") $content .= $key2." = \n"; else $content .= $key2." = \"".$elem2."\"\n"; } } }else { foreach ($assoc_arr as $key=>$elem){ if(is_array($elem)){ for($i=0;$i<count($elem);$i++){ $content .= $key2."[] = \"".$elem[$i]."\"\n"; } }elseif($elem=="") $content .= $key2." = \n"; else $content .= $key2." = \"".$elem."\"\n"; } } if(!$handle = fopen($path, 'w')) return false; if(!fwrite($handle, $content)) return false; fclose($handle); return true; } $ini = parse_ini_file('test.ini',true); $ini['sekce']['hodnota']=111; write_ini_file($ini,'test.ini',true); Tuto funkci jsem používal před pár lety - možná bude rychlejší ta metoda s preg_replace - nezkoušel jsem. |
||
Časová prodleva: 13 let
|
0