Autor | Zpráva | ||
---|---|---|---|
Valach Profil * |
#1 · Zasláno: 14. 6. 2011, 17:43:53
Ahoj
snažím se vypsat data z pole ale vůbec mi to nejde, všude spousta návodů přes while, for atd.. ale všechno je to jen když znám přesný počet cyklů. Neporadíte někdo jak vypsat všechny data z pole bez zbytečního zatížení serveru? Děkuji $pole = array('aaa', 'bbbb', 'ccc', 'ddd'); for ($i = 1; $pole == false; $i++){ echo($pole[$i]); } |
||
Tori Profil |
#2 · Zasláno: 14. 6. 2011, 17:54:38
|
||
Zechy Profil |
#3 · Zasláno: 14. 6. 2011, 17:55:06
Nech to vypsat přes foreach
|
||
Valach Profil * |
#4 · Zasláno: 14. 6. 2011, 19:36:31
Tak jsem to zkusil ale nějak to hapruje...
tohle funguje, vypis bude abcd $a = array('a','b','c','d'); foreach ($a as $value) { echo $value; } tohle nefunguje, vypis je jen abc $a = array('a','b','c','d'); $last = array_pop($a); foreach ($a as $value) { echo $value; } nevíte proč? |
||
laijk Profil |
#5 · Zasláno: 14. 6. 2011, 20:06:40
funkcia array_pop vystrihne poslednú hodnotu aj keby to bolo zapísané takto:
$a = array('a','b','c','d'); array_pop($a); foreach ($a as $value) { echo $value; } -čiže keď tam bude hocijako zapísaná vždy to vypíše len abc |
||
Valach Profil * |
#6 · Zasláno: 14. 6. 2011, 20:43:22
laijk:
a neexistuje nejaká funkce, která jen zjistí poslední hodnotu v poli? Nebo počet hodnot v poli by možná taky stačil... Díky |
||
laijk Profil |
#7 · Zasláno: 14. 6. 2011, 20:56:05
tak na zistenie počtu hodnôt v poli to bude count($a) a potom si už lahko zistíš poslednú hodnotu.
|
||
Valach Profil * |
#8 · Zasláno: 14. 6. 2011, 22:09:03
laijk:
„tak na zistenie počtu hodnôt v poli to bude count($a) a potom si už lahko zistíš poslednú hodnotu.“ JJ, díky, to je už jednoduché na oštření, jen kdyby člověk znal ty názvy funkcí... BTW: když mám to pole array('a','b','c','d'); jak jednoduše přidám další hodnotu třeba e aby výsledek byl array('a','b','c','d','e'); Díky |
||
Tori Profil |
#9 · Zasláno: 14. 6. 2011, 22:15:36
Stejně, jako se z pole čte
echo $pole['index']; echo $pole[2]; $pole['index'] = 'hodnota'; $pole[2] = 'hodnota'; $pole[] = 'hodnota'; // Uloží se pod první volný číselný index. |
||
Valach Profil * |
#10 · Zasláno: 15. 6. 2011, 01:09:54
Tori:
Ale koukám, že to není pro všechno stejný.. třeba do cookies vůbc neuložím data do pole :( zkoušel jsem setcookie('aaa', $get_id, time()+3600); /* expire in 1 hour */ $_COOKIE['aaa'][] = $get_id ale data se jen přepisují, nepřidávají se.. tak fakt nevím. Proč php neumí ukládat v cookie do array? Díky |
||
Alphard Profil |
#11 · Zasláno: 15. 6. 2011, 02:23:40 · Upravil/a: Alphard
|
||
Valach Profil * |
#12 · Zasláno: 15. 6. 2011, 02:58:16
Alphard:
Nějak nechápu co ta funkce má dělat :( |
||
Alphard Profil |
#13 · Zasláno: 15. 6. 2011, 03:23:08
Když potřebujete ukládat pole, tak ho jednoduše serializujete do řetězce, který lze uložit do cookies. Pak získáte inverzní funkcí původní pole.
Další možnost viz http://php.net/manual/en/function.setcookie.php example 3, ale spíš bych zůstal u jedné cookie. Je tam i poznámka "Consider explode() to set one cookie with multiple names and values. It is not recommended to use serialize() for this purpose, because it can result in security holes.", ale já bych se toho zas tolik nebál, třeba by stačilo json_encode(), nevím, v čem přesně je ta díra. |
||
Valach Profil * |
#14 · Zasláno: 15. 6. 2011, 03:53:27
Alphard:
Hm, já mám problém úplně někde jinde... :(( Jsem na stránce http://www/ahoj/ na ktere zaregistruji cookie a dam vypsat a vse ok, ale když přejdu na jinou stránku cookie tam nejsou, prostě jsou fuč setcookie("cookie[three]", "cookiethree"); setcookie("cookie[two]", "cookietwo"); setcookie("cookie[one]", "cookieone"); proč? co dělám blbě? DíkY |
||
Stano Profil |
#15 · Zasláno: 15. 6. 2011, 09:15:21 · Upravil/a: Stano
na vypísanie poslednej hodnoty z poľa je funkcia end() na pridanie na koniec poľa je funkcia array_push()
s cookies ti Bohužiaľ neporadím. |
||
Alphard Profil |
#16 · Zasláno: 15. 6. 2011, 10:26:13
Valach:
„Hm, já mám problém úplně někde jinde... :((“ Ono také není jednoduché se ve vašem popisu vyznat, např. [#10] vyznívá, jako problém s array v cookies. „ale když přejdu na jinou stránku cookie tam nejsou, prostě jsou fuč“ Na jakou stránku, a když se vrátí na tu původní, jsou k dispozici? Možná donastavit zbývající parametry. Podívejte se v prohlížeči, jestli cookies existují nebo ne. |
||
Valach Profil * |
#17 · Zasláno: 15. 6. 2011, 12:38:21
Alphard:
„Na jakou stránku, a když se vrátí na tu původní, jsou k dispozici? Možná donastavit zbývající parametry. Podívejte se v prohlížeči, jestli cookies existují nebo ne.“ Na kterou koliv stránku příjdu ,tak cookie nevidím, dokonce i když se vrátím na tu ve ktere jsem cookie ulozil tak tam taky nejsou. V prohlížeči ale fyzicky uloženy jsou.. když dám doplňující parametry setcookie ("TestCookie", "", time() - 3600, "/", ".mojedomena.cz", 1); tak se cookie neuloží ani fyzicky neexistujou v prohlížeči. |
||
Tori Profil |
#18 · Zasláno: 15. 6. 2011, 14:24:34
Valach:
Ad [#17]: Jednak nastavujete, aby platnost cookie skončila před hodinou (což se používá na smazání cookie, nikoli její nastavení), druhak chcete aby se poslala do prohlížeče pouze v případě, že bude připojený přes https:// (6.parametr). Nemůžete mít třeba na jedné stránce nastavení cookie a na jiné zas smazání (nebo přepsání pole $_COOKIE), že by kvůli tomu nebyly cookies čitelné ve skriptu? |
||
Časová prodleva: 13 let
|
0