Autor Zpráva
lamatér
Profil *
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
Převést integery na stringy a spojit pomocí . ?
lamatér
Profil *
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
lamatér - a načo to potrebuješ?
Joker
Profil
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 *
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
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']));
...
lamatér
Profil *
Problém je ale v tom, že intval(0777) odstraní tu nulu na začátku, což nechci.
djlj
Profil
$_GET['chmod']="0".intval($_GET['chmod']);

chmod($file, $_GET['chmod']);
Big_G
Profil *
Dejme tomu, že:
$a je 07 a $b je 77
Pak jednoduše použít $a."".$b
djlj
Profil
Big_G
Nebo taky $a.$b.
Gaddy
Profil *
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 *
Oprava:

$att = array("777" => "511", "755" => "493", "644" => "420");
BetaCam
Profil
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;
}

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0