Autor | Zpráva | ||
---|---|---|---|
hondziiikh Profil * |
#1 · Zasláno: 27. 2. 2009, 14:15:02
Tak abych to vysvetlil, mám slovo z $_POST[] a potřebuju to slovo, které mi přijde rozsekat a z každého písmena udělat proměnnou.. Příklad - přijde slovo HONZA => $p1=H; $p2=O; $p3=N; $p4=Z; $p5=A; jedná se o to, že ta písmena se budou vkládat do okýnek na formuláři, který jsou prostě stupidně sestavený... takze tam budou napozicovyné. Děkuji za rady.. :)
|
||
Nox Profil |
#2 · Zasláno: 27. 2. 2009, 14:19:07 · Upravil/a: Nox
$p1,$p2,$p3...koukni se na termín "pole proměnných", hezká věc
a dále: PHP umožnuje nakládat s řetězcem jako s polem bez jakékoliv manipulace (ono obojí k sobě má v základu blízko) tzn. $a = "letadlo"; echo $a[2]; // vypíše "t" |
||
imploder Profil |
#3 · Zasláno: 27. 2. 2009, 14:26:19
hondziiikh
Co píše Nox je pravda, ale není to úplně po písmenech, je to po bajtech. Pokud používáš kódování, kde každý znak (písmeno) je vždy jeden bajt, tak není problém tak jakékoliv slovo rozdělit. Takové kódování je pro češtinu ISO-8859-2 nebo Windows-1250. Když ale používáš Unicode (UTF-8), tak tam tohle neplatí a např. písmena s diakritikou mají 2 bajty, některé jiné znaky i víc. |
||
hondziiikh Profil * |
#4 · Zasláno: 27. 2. 2009, 14:30:08
trefa do černého, používám UTF8.. :( a v tomto právě potřebuju poradit
|
||
imploder Profil |
#5 · Zasláno: 27. 2. 2009, 14:51:07 · Upravil/a: imploder
<?php $text = "hasdhasdusdjýáíýáč"; $znaku = mb_strlen($text); for($i=0; $i<$znaku; $i++) $prom[$i] = mb_substr($text, $i, 1, "utf-8"); ?> |
||
hondziiikh Profil * |
#6 · Zasláno: 27. 2. 2009, 15:04:09
„12345 <?php$text = "hasdhasdusdjýáíýáč";$znaku = mb_strlen($text);for($i=0; $i<$znaku; $i++) $prom[$i] = mb_substr($text, $i, 1, "utf-8");?>“
Jestli tomu rozumim, tak by toto mělo výsledně fungovat(ale nefunguje :) ) po napsání <?php echo $prom1; echo $prom2; ?> |
||
Nox Profil |
#7 · Zasláno: 27. 2. 2009, 15:15:04
imploder
J, pravda, chybka hondziiikh $p1,$p2,$p3...koukni se na termín "pole proměnných", hezká věc => echo $prom[0]; echo $prom[1] |
||
hondziiikh Profil * |
#8 · Zasláno: 27. 2. 2009, 15:19:28
Jop... to je ono :) hranaty zavorky, no dobrý už to funguje :) jen to ještě doupravím, aby mi to echovalo automaticky, podle počtu písmen a budu maximálně happy :) ale to bych už měl zmáknout :) Velice děkuji za spolupráci.
|
||
Časová prodleva: 3 dny
|
|||
imploder Profil |
hondziiikh
for($i=0; isset($prom[$i]); $i++) echo $prom[$i]."\n"; Každý znak vypíše na jeden řádek. Počet znaků (v Unicodu může být větší než počet bajtů) jde zjistit taky mb_strlen(). Když už máš ty znaky po jednom v poli, tak můžeš vypisování místo toho zarazit před první nedefinovanou proměnnou v tom poli (podmínka isset($prom[$i]) ve foru). |
||
Časová prodleva: 15 let
|
0