Autor | Zpráva | ||
---|---|---|---|
zooner Profil |
#1 · Zasláno: 30. 1. 2009, 15:07:16
zdravim, potřeboval bych radu. Jak dostat z cyklu, který mi převede text do bináru, výsledek po hromadě?
tady je kód: <? $text = "nějaký text"; $delka = strlen($text); for($i=0;$i<$delka;$i++){ $do = "1"; $rozdeleni = substr($text ,$i, $do++); $retezec = decbin(ord($rozdeleni)); echo $retezec; } ?> $retezec se skládá z jednotlivých znaků převedených do bináru a potřeboval bych aby se to uložit aby to byl jeden řetězec, napadlo mě pole ale taky mi to nějak nejde. Díky za rady |
||
tiso Profil |
#2 · Zasláno: 30. 1. 2009, 15:16:42 · Upravil/a: tiso
$text = "nějaký text"; $delka = strlen($text); $retezec=''; for($i=0;$i<$delka;$i++){ $rozdeleni = substr($text ,$i, 1); $retezec .= decbin(ord($rozdeleni)); } echo $retezec; |
||
zooner Profil |
#3 · Zasláno: 30. 1. 2009, 15:18:46
tiso
to vypíše akorát to co proběhlo v posledním cyklu ;-) |
||
Alphard Profil |
#4 · Zasláno: 30. 1. 2009, 15:21:00
zooner
vsadíš se? |
||
zooner Profil |
#5 · Zasláno: 30. 1. 2009, 15:23:07
tiso
máš pravdu omlouvám se, sem si nevšiml tý tečky Alphard už radši ani ne moc díky za radu |
||
Měsíček Profil |
#6 · Zasláno: 30. 1. 2009, 15:34:14
Jakožto nezkušený bych měl dotaz :), nebylo by jednodušší použít přístup jako k poli? :)
for($i=0,$r='';$i<strlen(($x="nějaký text"));$r.=decbin(ord($x[$i++]))); echo $r; <?php $x = "nějaký text"; for ($i=0,$r='';$i<strlen($x);){ $r .= decbin(ord($x[$i++])); } echo $r; ?> |
||
AM_ Profil |
#7 · Zasláno: 30. 1. 2009, 18:32:32
bylo, ale syntaxe je $x{$i++}, s hranatymi zavorkami to mam pocit nefunguje.
|
||
imploder Profil |
#8 · Zasláno: 30. 1. 2009, 18:37:34
Měsíček
„ for($i=0,$r='';$i<strlen(($x="nějaký text")); (...)“ Pokud se řetězec nemění, je lepší si jeho délku uložit do proměnné jenom jednou a v cyklu už ji jenom používat jako číslo. Funkce strlen() se pak provede jenom jednou. Když se bude zbytečně délka řetězce počítat při každém provedení cyklu, asi to zas tak nevadí, ale u dlouhých řetězců by už ten rozdíl v rychlosti mohl být dost podstatný. |
||
Měsíček Profil |
#9 · Zasláno: 30. 1. 2009, 18:51:38
Reaguji na implodera:
Díky, dobrá připomínka :) Řekl bych, že první část konstruktu for se provede pouze jednou, takže teď by to mělo být už lepší. <?php for($i=0,$r='',$y=strlen(($x="nějáký text"));$i<$y;$r.=decbin(ord($x[$i++]))); echo $r; ?> <?php for ($i=0,$r='',$y=strlen(($x="nějáký text"));$i<$y;){ $r .= decbin(ord($x[$i++])); } echo $r; ?> Reaguji na AM_: Díky za potvrzení :), parser mi hranaté závorky přežvýkal. |
||
Časová prodleva: 15 let
|
0