Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá, tenho um Script que funcionava perfeitamente em um antigo servidor.
Agora eu atualizei de servidor, e o mesmo script do mesmo jeitinho que estava no antigo server, eu enviei para o novo server, e fica dando o erro: "Invalid argument supplied for foreach()"
"sort() expects parameter 1 to be array, boolean given in "
e "Warning: ftp_put(): Filename cannot be empty in /home/myradio/public_html/admin/inc/classe.ftp.php on line 133"
Tem alguma coisa a ver com o Server? versão de PHP/Apache?
Algo a ativar?
Por que no server anterior funcionava, e agora não funciona!
o código está correto.
Código do FTP;
<?php
class FTP {
function conectar($ip) {
$this->conexao = ftp_connect($ip);
if(!$this->conexao) {
die("Não foi possível se conectar-se ao FTP.");
}
}
function autenticar($usuario,$senha) {
if(!ftp_login($this->conexao,$usuario,$senha)) {
die("Não foi possível autenticar-se ao FTP.");
}
}
function abrir_pasta($pasta) {
if(!ftp_chdir($this->conexao,$pasta)) {
die("Não foi possível abrir a pasta no FTP.");
}
}
function verificar_pasta($pasta){
if(ftp_size($this->conexao, $pasta) == '-1'){
return true;
} else {
return false;
}
}
function listar_pastas($pasta) {
$this->lista = ftp_nlist($this->conexao,$pasta);
sort($this->lista);
foreach ($this->lista as $objeto) {
if($this->verificar_pasta($objeto)) {
$pastas[] = $objeto;
}
}
return $pastas;
}
function listar_arquivos($pasta,$tipo) {
$this->lista = ftp_nlist($this->conexao,$pasta);
sort($this->lista);
foreach ($this->lista as $objeto) {
if(preg_match("/\.(".$tipo.")$/i",$objeto)) {
$arquivos[] = $objeto;
}
}
return $arquivos;
}
function total_arquivos($pasta,$tipo) {
$this->lista = ftp_nlist($this->conexao,$pasta);
foreach ($this->lista as $objeto) {
if(preg_match("/\.(".$tipo.")$/i",$objeto)) {
$arquivos[] = $objeto;
}
}
return count($arquivos);
}
function criar_pasta($pasta) {
if(ftp_mkdir($this->conexao,$pasta)) {
return true;
} else {
return false;
}
}
function remover_pasta($pasta) {
$this->arquivos = @ftp_nlist($this->conexao,$pasta);
if (!empty($this->arquivos)) {
foreach($this->arquivos as $arquivo) {
@ftp_delete($this->conexao,$pasta."/".$arquivo);
}
}
if(ftp_rmdir($this->conexao,$pasta)) {
return true;
} else {
return false;
}
}
function remover_arquivo($arquivo) {
if(ftp_delete($this->conexao,$arquivo)) {
return true;
} else {
return false;
}
}
function enviar_arquivo($arquivo_local,$arquivo_ftp) {
if(ftp_put($this->conexao,$arquivo_ftp,$arquivo_local,FTP_BINARY)) {
return true;
} else {
return false;
}
}
function desconectar() {
ftp_close($this->conexao);
}
}
?>
Código que lista as pastas e arquivos index:
<?php
// Conexão FTP
$ftp = new FTP();
$ftp->conectar($dados_servidor["ip"]);
$ftp->autenticar($dados_stm["porta"],$dados_stm["senha"]);
$array_pastas = $ftp->listar_pastas(".");
foreach ($array_pastas as $pasta) {
if($pasta != "." && $pasta != "..") {
$total_musicas = $ftp->total_arquivos($pasta,"mp3");
echo '<option value="'.$pasta.'">'.$pasta.' ('.$total_musicas.')</option>';
}
}
?>
No antigo server ele está a funcionar!Carregando comentários...