Autor | Zpráva | ||
---|---|---|---|
Georgík Profil |
#1 · Zasláno: 31. 8. 2005, 17:53:40
Dobrý den.
Prosím, pomozte mi získávat z obecného query stringu substring proměnné. Například ze vstupního query stringu: "?x007=error&x0=x1=chyba&x1=zde=je=vysledek&x2=osibka" by výsledek pro proměnnou "x1" měl být: "zde=je=vysledek", kde rovnítka ve výsledném stringu nemohu vyloučit. Budu moc vděčný za každé řešení, ale perfektní řešení by mi strašně pomohlo. Zatím zakopávám. Velice děkuji. S přátelským pozdravem. Jirka |
||
Cenobit Profil |
#2 · Zasláno: 31. 8. 2005, 18:23:51
Zkus pole $_GET['id'] kde id je nazev promenne. Videl jsem na to i priklad na php.net, ale ted nevim u ktere funkce(
|
||
Hugo_jinde Profil * |
#3 · Zasláno: 31. 8. 2005, 18:45:06
Georgík
Pokud ti jde o php, tak jsou vsechny data z URL ulozeny v poli $_GET. Muzes se na to podivat napr. pomoci print_r($_GET) |
||
Georgík Profil |
#4 · Zasláno: 31. 8. 2005, 19:07:31
Dobrý den.
Děkuji za snahu. Hugo poznal chybu. Ano v tom to je. Zapoměl jsem říci, že problém potřebuji vyřešit obecně - ze stringové proměnné do jiné. Celý projekt je v .NET Frameworku a visí to jen na tomhle. Mám tam ale k dispozici běžné regulární výrazy jako v JavaScriptu a asi PHP. PHP bohužel neumím a i pro moje použití bych asi potřeboval spíše regex (modifikuji knihovnu). Prosím, jestli umíte regulární výrazy (třeba pro PHP), pomozte. Já se tím nějak proberu. Ještě jednou díky. Jirka |
||
Cenobit Profil |
#5 · Zasláno: 31. 8. 2005, 19:42:18 · Upravil/a: Cenobit
Hi
reg. vyrazy moc neovladam ale tohle by mohlo pomoci. EregI ("\&=([^\&]) ", $URL, $shoda); to by melo vybrat vse mezi 2 znaky & a pak to ulozit do pole $shoda. Takze 1 promenna bude $shoda [1] atd. Ale ti mreg vyrazem si nejsem fakt jistej. UPRAVA: Uz jsem to nasel. Tohle by melo vypsat vsechny parametry URL foreach($_GET as $variable => $value) { echo "Variable Name: " . $variable . " Value: $value<br>"; |
||
Georgík Profil |
#6 · Zasláno: 31. 8. 2005, 20:59:52
Dobrý večer.
Velice děkuji Cenobitovi za příspěvek. Řešení vypadá zajímavě, jenom asi řeší jen speciální případ query stringu. Problém je v tom, že nastává několik variant. To dílko, na kterém pracuji se musí vypořádat s jakoukoliv situací. 1. "?x007=error&x0=x1=chyba&x1=zde=je=vysledek&x2=osibka" -> zleva, zprava "&" 2. "?x007=error&x0=x1=chyba&x1=zde=je=vysledek" -> zleva "&", zprava nic 3. "?x1=zde=je=vysledek&x2=osibka" -> zleva "?", zprava "&" 4. "?x1=zde=je=vysledek" -> zleva "?", zprava nic Velice díky. Jirka |
||
Cenobit Profil |
#7 · Zasláno: 31. 8. 2005, 21:23:02
Hi
me se to zda ok, ale nevim jak presne to ches interpretovat. 1. "?x007=error&x0=x1=chyba&x1=zde=je=vysledek&x2=osibka" Vrati Variable Name: x007 Value: error Variable Name: x0 Value: x1=chyba Variable Name: x1 Value: zde=je=vysledek Variable Name: x2 Value: osibka 2) Vrati Variable Name: x007 Value: error Variable Name: x0 Value: x1=chyba Variable Name: x1 Value: zde=je=vysledek 3) Vrati Variable Name: x1 Value: zde=je=vysledek Variable Name: x2 Value: osibka 4) Vrati Variable Name: x1 Value: zde=je=vysledek A atdy je cely script <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=windows-1250"> <meta name="generator" content="PSPad editor, www.pspad.com"> <title></title> </head> <body> <? foreach($_GET as $variable => $value) { echo "Variable Name: " . $variable . " Value: $value<br>"; } ?> </body> </html> BTW: nechci byt drzy, ale myslim si, ze v URL by se specialni zbnaky jako "=" nemely vibec vyskytovat a kdyztak byt zakodovany. Ale nejsem si jisty. |
||
Georgík Profil |
#8 · Zasláno: 31. 8. 2005, 22:20:32
Dobrý večer.
Panu Cenobite děkuji Vám za příspěvek. Navíc jste si dal strašně práce. Mě tady ještě nikdo tolik nepomohl. Vaše řešení je zajímavé a evidentně si dovedete poradit. Zdá se, že jste příliš skromný. Já jen nevím, jak potom při získávání shod regexu zjistím, která shoda odpovídá tomu mému jménu proměnné, které jednou je x1, jednou x2 atd. a jednou je na začátku query stringu a tím i v pořadí shod a jednou zcela jinde. Jméno proměnné je proměnná. Na tomto problému s přestávkami pracuji klidně dva měsíce. Také proto jsem již pozapoměl, že to URL prošlo JavaScriptovou funkcí unescape, ale jinak je v daném tvaru. Mnohokrát děkuji. Jirka |
||
Kajman Profil * |
#9 · Zasláno: 1. 9. 2005, 10:12:51
|
||
Georgík Profil |
#10 · Zasláno: 1. 9. 2005, 21:18:15
Dobrý večer.
Na úvod bych se rád obmluvil Cenobitovi za citové a jiné výlevy, jsem dlouho bez dovolené a vůbec mimo. Výsledný regex pro jméno proměnné "x1" má tvar: (?<=(&|\?|^)x1\=).*?(?=(&|$)) Jde o verzi pro .NET Framework, v JavaScriptu totéž neumím (nepodařilo se mi to). Jedině snad takto: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><script type="text/javascript"> var strVar = prompt("", "?x007=error&x0=x1=chyba&x1=zde=je=vysledek&x2=osibka"); alert(strVar.match(/(&|\?|^)x1\=[\w\/\.\:\-\%\=]*/)[0].match(/x1\=[\w\ /\.\:\-\%\=]*/)[0].match(/[^(x1\=)][\w\/\.\:\-\%\=]*/)[0]); </script></head><body></body></html> Nakonec jsem na to tedy přišel, přesto velice děkuji těm, co se snažili. Hodně úspěchů ve vývoji. Jirka |
||
Časová prodleva: 19 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0