Autor | Zpráva | ||
---|---|---|---|
Houbar Luky Profil * |
#1 · Zasláno: 7. 1. 2013, 10:45:10 · Upravil/a: Moderátor (editace znemožněna) 13. 1. 2013, 01:09:36
Už asi 3 hodiny se pokouším změnit:
$filter[1] = preg_replace("/\"/i","\\\"",$filter[1]); $filter[1] = str_replace("/\"/i","\\\"",$filter[1]); |
||
Alphard Profil |
#2 · Zasláno: 7. 1. 2013, 11:03:59
str_replace() nebere reguláry. Proč se to snažíte změnit, jesti preg_replace() funguje?
|
||
Houbar Luky Profil * |
#3 · Zasláno: 7. 1. 2013, 11:08:55
Původně to bylo takto: $filter[1] = preg_replace("/\"/i","\\\"",$filter[1]); $script .= "message = message.replace(/$filter[0]/gi,\"$filter[1]\");\r\ n"; } return $script; } // This returns all of a certain type of filter function get_filter_by_type($type){ $return = array(); foreach($this->filter_array as $noneed=>$filter){ // Add it to the output if it's the correct type if($filter[2] == $type){ $filter[1] = eregi_replace("\\\\\"","",$filter[1]); $return[] = $filter; Ale po přechodu na novej webhosting mě to nefunguje: nejsou podporované zastaralé funkce. Tak jsem to změnil takto a to nefunguje: $filter[1] = preg_replace("/\"/i","\\\"",$filter[1]); $script .= "message = message.replace(/$filter[0]/gi,\"$filter[1]\");\r\ n"; } return $script; } // This returns all of a certain type of filter function get_filter_by_type($type){ $return = array(); foreach($this->filter_array as $noneed=>$filter){ // Add it to the output if it's the correct type if($filter[2] == $type){ $filter[1] = str_replace("\\\\\"","",$filter[1]); $return[] = $filter; |
||
Alphard Profil |
#4 · Zasláno: 7. 1. 2013, 11:18:39
Zavržená je pouze skupina ereg*, preg* nechte být.
|
||
Houbar Luky Profil * |
#5 · Zasláno: 7. 1. 2013, 11:21:56 · Upravil/a: Houbar Luky
Alphard:
Ale mě to nefunguje Chyba je tady: $filter[1] = eregi_replace("\\\\\"","",$filter[1]); jak to mám změnit? |
||
peta Profil |
eregi_replace("\\\\\"","",$filter[1]); modifikator i lomitko, lomitko, uvozovka Ale ted si nejsem uplne jisty, jestli ti to mohlo fungovat, protoze tam neni pocatecni a koncovy znak reg. vyrazu. Ja ho tam vzdy davam. eregi_replace("\\\\\"","",$filter[1]); preg_replace("\\\\\"","",$filter[1]); preg_replace("~\\\\\"~i","",$filter[1]); preg_replace("\\\\\"","",$filter[1]); Si myslim, ze spravne by melo byt spis jedno z techto reseni: str_replace("\\\\\"","",$filter[1]); preg_replace("~\\\\\"~","",$filter[1]); str_replace("\"","",$filter[1]); preg_replace("~\"~","",$filter[1]); str_replace('"',"",$filter[1]); preg_replace('~"~',"",$filter[1]); preg_replace("/\"/i","\\\"",$filter[1]); "/\"/i" Ten vyraz se s prvnim neshoduje. Takze nemuzes ocekavat stejne vysledky. Jak se pisi reg. vyrazy a modifikatory? http://cz1.php.net/preg-replace http://cz1.php.net/manual/en/reference.pcre.pattern.modifiers.php zacatek |
||
Jan Tvrdík Profil |
#7 · Zasláno: 7. 1. 2013, 12:45:12
peta:
Nejsem si jist, jestli z tvého výkladu bude Houbar Luky moc moudrý :) „protoze tam neni pocatecni a koncovy znak reg. vyrazu.“ U ereg* funkcí delimitery nepíší.
Houbar Luky: Výraz $filter[1] = eregi_replace("\\\\\"","",$filter[1]); můžeš nahradit pomocí str_replace za
$filter[1] = str_replace("\\\"", "", $filter[1]); |
||
peta Profil |
#8 · Zasláno: 8. 1. 2013, 16:00:38
Jen jsem chtel rici, ze pro ereg i preg musi mit ten vyraz stejny, "\\\\\"". Pro str mu staci "\\\"" nebo '"' a nebo '\\"'. A je mozne, ze jsem to netrefil, ze ten tvuj vyraz je konecne ten ok :) Tezko rici. On musi napsat, ktere znaky hleda reg vyrazem.
|
||
Jan Tvrdík Profil |
peta:
Píšeš nesmysli. Jdi si dát studenou sprchu. „pro ereg i preg musi mit ten vyraz stejny“ To není pravda ani obecně ani v tomhle konkrétním případě, protože preg* funkce vyžadují uvedení delimiterů. „Pro str mu staci "\\\"" nebo '"' a nebo '\\"'.“ Stačí uvést jednu správnou možnost, netřeba uvádět ty nesprávné. „On musi napsat, ktere znaky hleda reg vyrazem.“ On jednoznačně uvedl, kterou funkci chce nahradit. Nic víc není potřeba specifikovat. |
||
SeparateSK Profil |
$text="Uvodzovky: \""; $text=str_replace("\"","\\\"",$text); echo $text; //Uvodzovky: \" |
||
Časová prodleva: 11 let
|
0