Autor | Zpráva | ||
---|---|---|---|
Yuff.3 Profil |
#1 · Zasláno: 21. 2. 2015, 18:37:41
Ahojte,
mám list($ip, $steamid, $date, $name, $reason, $admin, $time) = explode('"', $string); kde $string = "95.102.129.190:15509" "STEAM_0:1:273027" "1424538624" "Rigi" "testoavci ban" "Yuff.3" "0"
Problém je asi hneď očividný. Ako dosiahnem, aby mi explodovalo každú druhú vec do premennej ? ďakujem |
||
Keeehi Profil |
explode('" "', trim($string, '"')); |
||
mimochodec Profil |
#3 · Zasláno: 21. 2. 2015, 18:43:14
Yuff.3:
Okrájej z toho ty uvozovky úplně na začátku a na konci a pak explode ('" "', $string)
|
||
Yuff.3 Profil |
#4 · Zasláno: 21. 2. 2015, 19:00:05
mimochodec:
čím to "okrájam" ? |
||
Fisir Profil |
#5 · Zasláno: 21. 2. 2015, 19:05:25
Reaguji na Yuff.3:
[#2] |
||
Yuff.3 Profil |
#6 · Zasláno: 21. 2. 2015, 19:17:06
Fisir:
predtým tam mal iný zápis. ĎAKUJEM všetkým. |
||
Keeehi Profil |
#7 · Zasláno: 21. 2. 2015, 19:51:57
Yuff.3:
Měl, ale se stejnou funkcionalitou. |
||
Yuff.3 Profil |
#8 · Zasláno: 21. 2. 2015, 20:02:41
Keeehi:
to sa nehádam. A zisťujem, že toto nefunguje celkom presne ako by som chcel. Totiž posledná " zostane.. a teda výsledkom premnnej $time je (0") - kde " je nežiadúca. |
||
Keeehi Profil |
#9 · Zasláno: 21. 2. 2015, 21:04:01
Yuff.3:
No evidentně tam bude asi nějaký bílý znak, takže je potřeba ho přidat do výčtu znaků toho trimu. |
||
1Pupik1989 Profil |
#10 · Zasláno: 21. 2. 2015, 21:23:52
Nebo využít preg_match a regulární výraz.
|
||
Yuff.3 Profil |
#11 · Zasláno: 21. 2. 2015, 22:00:53
Keeehi:
jak ho môžem pridať keď neviem ako ten "biely znak vyzerá" ? 1Pupik1989: no áno, pokiaľ neprídem na to ako to vyriešiť týmto spôsobom - spravím to ako vravíš. |
||
Keeehi Profil |
Yuff.3:
No já s tím těžko pomůžu, když ten vstup nemám k dispozici. Asi tam bude konec řádku nebo mezera ale to nemůžu vědět. Můžeš to projít třeba znak po znaku a zjistit čím to končí for ($n=0;$n<strlen($string);$n++){ echo ord($string[$n]).";"; } 1Pupik1989: Byl by vhodnější preg_split, ale to stejně nepomůže ořezu přebytečných znaků. |
||
Yuff.3 Profil |
#13 · Zasláno: 22. 2. 2015, 13:19:52
Keeehi:
Asi nerozumiem ako mi to môže pomôcť. ten kód mi vypísal toto: 34;57;53;46;49;48;50;46;49;50;57;46;49;57;48;58;49;53;53;48;57;34;32;34;83;84;69;65;77;95;48;58;49;58;50;55;51;48;50;55;34;32;34;49;52;50;52;53;51;56;54;50;52;34;32;34;82;105;103;105;34;32;34;116;101;115;116;111;97;118;99;105;32;98;97;110;34;32;34;89;117;102;102;46;51;34;32;34;48;34;10;34;49;57;53;46;49;54;56;46;50;48;57;46;52;58;50;55;48;48;53;34;32;34;83;84;69;65;77;95;48;58;49;58;51;54;50;55;49;48;54;56;34;32;34;49;52;50;52;53;52;52;53;56;55;34;32;34;114;114;114;114;82;114;114;114;114;34;32;34;68;114;117;104;121;32;112;111;107;117;115;110;121;32;98;97;110;32;114;114;114;114;82;114;114;114;114;44;32;100;108;104;121;63;63;34;32;34;89;117;102;102;46;51;34;32;34;53;48;34;10;34;49;57;53;46;49;54;56;46;50;48;57;46;52;58;50;55;48;48;53;34;32;34;83;84;69;65;77;95;48;58;48;58;49;48;56;56;57;49;54;51;49;49;34;32;34;49;52;50;52;53;52;54;50;57;52;34;32;34;84;111;32;110;105;101;32;106;97;32;116;111;32;109;111;106;101;32;65;66;34;32;34;106;97;34;32;34;89;117;102;102;46;51;34;32;34;110;105;101;34;10;
„Asi tam bude konec řádku nebo mezera ale to nemůžu vědět.“ pravdepodobne koniec riadku - jak to môžem teda odstrániť? |
||
mimochodec Profil |
#14 · Zasláno: 22. 2. 2015, 13:30:39
Yuff.3:
Zpátky k původní otázce. Píšeš tam, že „$string = "95.102.129.190:15509" "STEAM_0:1:273027" "1424538624" "Rigi" "testoavci ban" "Yuff.3" "0"“ Takhle to asi nevypadá. Ukaž var_dump toho $string; |
||
Keeehi Profil |
Yuff.3:
Pomůže ti to tak, že to vypsalo číselné kódy každého znaku. Dají se pak dohledat v ascii tabulce. Třeba 34 je uvozovka. A poslední 10 znamená nový řádek. Tedy ten bílý znak je znak nového řádku. Proto ten trim by měl mít tedy ($string, "\n\"")
Problém však je, že v $string nemáš jen jeden záznam ale 3. Takže si to nejdříve rozděl po záznamech. Ovšem při tomto dělení se pravděpodobně ty konce řádků ztratí, takže ta předchozí úprava nebude potřeba. |
||
Yuff.3 Profil |
#16 · Zasláno: 22. 2. 2015, 14:14:00
mimochodec:
toto je celý presný obsah toho súboru: "95.102.129.190:15509" "STEAM_0:1:273027" "1424538624" "Rigi" "testoavci ban" "Yuff.3" "0" "195.168.209.4:27005" "STEAM_0:1:36271068" "1424544587" "rrrrRrrrr" "Druhy pokusny ban rrrrRrrrr, dlhy??" "Yuff.3" "50" "195.168.209.4:27005" "STEAM_0:0:1088916311" "1424546294" "To nie ja to moje AB" "ja" "Yuff.3" "nie" Keeehi: „Problém však je, že v $string nemáš jen jeden záznam ale 3. Takže si to nejdříve rozděl po záznamech.“ prečo je to nutné? jak to rozdelím? |
||
Keeehi Profil |
#17 · Zasláno: 22. 2. 2015, 15:51:26
Yuff.3:
„prečo je to nutné?“ No asi proto, že se jinak snažíš nacpat pole s 21 prvky do 7mi proměnných. „jak to rozdelím?“ Že by explode podle nových řádků? |
||
1Pupik1989 Profil |
#18 · Zasláno: 22. 2. 2015, 18:42:30
Keehi: S preg_matchem by nebylo třeba bílé znaky řešit. Prostě se vybere jen to mezi uvozovkami s použitím nežravého zápisu. Hned za preg_match se pak dá list.
|
||
Yuff.3 Profil |
#19 · Zasláno: 23. 2. 2015, 18:27:20
Keeehi:
„Že by explode podle nových řádků?“ nikde som sa nedočítal jak explode vysvetlím, že rieši nový riadok.. Vieš mi to vysvetliť prosím? 1Pupik1989: „s použitím nežravého zápisu.“ to je aký? |
||
Keeehi Profil |
#20 · Zasláno: 23. 2. 2015, 19:09:38
explode("\n", $input); |
||
lionel messi Profil |
#21 · Zasláno: 23. 2. 2015, 19:21:14
Yuff.3:
„to je aký?“ Žravá varianta: .*
Nežravá: .*?
Regulár a* zachytí v slove „baaaaa“ všetky a vrátane, kým a*? len prvé. Žravá varianta zachytí maximálny počet znakov vyhovujúci reguláru, nežravá minimálny.
|
||
Časová prodleva: 3 dny
|
|||
Yuff.3 Profil |
#22 · Zasláno: 26. 2. 2015, 21:17:33
Moc všetkým ďakujem.
|
||
Časová prodleva: 10 let
|
0