Autor | Zpráva | ||
---|---|---|---|
lamatér Profil * |
#1 · Zasláno: 29. 10. 2007, 13:45:13
Narazil jsem na celkem zásadní problém...
nezjistil jsem jak spojit 2 čísla (proměnné int) na spojení řetězců máme . ale jak spojím 2 čísla? |
||
Tasartir Profil |
#2 · Zasláno: 29. 10. 2007, 13:52:43
Převést integery na stringy a spojit pomocí . ?
|
||
lamatér Profil * |
#3 · Zasláno: 29. 10. 2007, 13:58:01
to jsem zkoušel, ale problém je že ve výsledku potřebuju zase integer začínající 0
tedy když použiju intval('0777'); dostanu sice integer, ale jen 777 a já bych chtěl nějak dostat integer 0777 |
||
tiso Profil |
#4 · Zasláno: 29. 10. 2007, 14:06:05
lamatér - a načo to potrebuješ?
|
||
Joker Profil |
#5 · Zasláno: 29. 10. 2007, 14:31:11
lamatér
já bych chtěl nějak dostat integer 0777 Takový požadavek je nejspíš hloupost. Číselný datový typ reprezentuje číslo, integer je prostě např. "sedmset sedmdesát sedm". formátování je potřeba zajistit při vypisování toho čísla. Mimochodem, jak by vypadala taková operace spojování dvou čísel? Co by mělo být výsledkem například "777 spojeno s 777"? Možná číslo 50 922 249 (777 je uloženo v paměti jako bajty 00000011 00001001, když se to napíše dvakrát za sebou, vyjde těch necelých 51 milionů), ale k čemu by to bylo dobré? To co psal Tasartir by vyřešilo oba problémy. Do řetězce lze v klidu uložit "0777" a zároveň je jde spojovat. |
||
lamatér Profil * |
#6 · Zasláno: 29. 10. 2007, 15:38:23
Dělal jsem script na ftp_chmod , kde jsem potřeboval práva předávat scriptu metodou get
Tak tam asi udělám hodně podmínek if a ifelse Jinak 0777 je octalové číslo |
||
tiso Profil |
#7 · Zasláno: 29. 10. 2007, 16:27:07
lamatér - viem čo je 0777. A čo ti bráni poslať ho ako int?
subor1.php: ... echo '<a href="subor2.php?chmod='.intval(0777).'">link</a>'; ... subor2.php: ... chmod($file, intval($_GET['chmod'])); ... |
||
Časová prodleva: 6 dní
|
|||
lamatér Profil * |
#8 · Zasláno: 4. 11. 2007, 11:03:25
Problém je ale v tom, že intval(0777) odstraní tu nulu na začátku, což nechci.
|
||
djlj Profil |
#9 · Zasláno: 4. 11. 2007, 11:21:03 · Upravil/a: djlj
$_GET['chmod']="0".intval($_GET['chmod']);
chmod($file, $_GET['chmod']); |
||
Časová prodleva: 1 měsíc
|
|||
Big_G Profil * |
#10 · Zasláno: 14. 12. 2007, 00:22:12
Dejme tomu, že:
$a je 07 a $b je 77 Pak jednoduše použít $a."".$b |
||
djlj Profil |
#11 · Zasláno: 14. 12. 2007, 00:31:43
Big_G
Nebo taky $a.$b. |
||
Časová prodleva: 4 měsíce
|
|||
Gaddy Profil * |
#12 · Zasláno: 8. 4. 2008, 11:40:56
Bože můj, pánové, začněte myslet. On potřebuje, aby to číslo v té proměnné bylo v oktální soustavě. Nějaké spojování dvou proměnných vytvoří string, který je pro ftp_chmod nepřijatelný, takže automaticky veme a ten string převede na integer. Takže už není string 0777, ale zase a opět integer 777. Ten se pak převede na nějaký nesmysl a netuším, jak k němu příjde...
Na tenhle problém jsem narazil taky a nenašel jsem žádné elegantnější řešení, než toto: function ChangeChmod($chmod, $file) { global $ftpconn; $att = array("777" => "511", "775" => "493", "644" => "420"); $mode = $att[$chmod]; $ftpchmod = @ftp_chmod($ftpconn, $mode, $file); if (!$ftpchmod) return 0; else return 1; } Ještě bych tam přidal nějaké ošetření pro situaci, kdy by se měl měnit chmod na číslo, které není uvedeno v poli $att. |
||
Gaddy Profil * |
#13 · Zasláno: 8. 4. 2008, 11:42:20
Oprava:
$att = array("777" => "511", "755" => "493", "644" => "420"); |
||
BetaCam Profil |
#14 · Zasláno: 8. 4. 2008, 13:02:44
Gaddy
Ještě bych tam přidal nějaké ošetření pro situaci, kdy by se měl měnit chmod na číslo, které není uvedeno v poli $att. A co ti brání si převédst všechno co pošleš do proměnné $chmod?? K čemu tam mít pole s hodnotami když to můžu předělat pomocí intval($chmode, 8) viz následující úprava: function ChangeChmod($chmod, $file) { global $ftpconn; $ftpchmod = @ftp_chmod($ftpconn, intval($chmod, 8), $file); if (!$ftpchmod) return 0; else return 1; } |
||
Časová prodleva: 16 let
|
0