Jump to content

Recommended Posts

Hey my PHP code is:

<?php

    require_once("class.get.files.php");

 

  $ext = array("html");

  $folder = "/";

  $files = new getfiles($folder,$ext);

  $list = $files->getlist();

 

    header("Content-Type: text/plain");

    print "<?xml version=\"1.0\" ?>\n";

    print "<images>\n";

    for ($i = 0; $i< count($list); $i++) {

      print "\t<image filename=\"$list[$i]\" />\n";

    }

    print "</images>";

?>

 

When running it I get: (http://the-memorables.com/getimages.php)

"Warning: is_dir() [function.is-dir]: open_basedir restriction in effect. File(/) is not within the allowed path(s): (/home/sivn/:/tmp:/var/tmp:/usr/local/lib/php/) in /home/sivn/domains/the-memorables.com/public_html/class.get.files.php on line 23"

 

The PHP is using another PHP to create a XML file.

The problem is with the second PHP and the line: if(!is_dir($dir))

 

What can I do? what is the problem?

Why the PHP can't access the local directory he inside?

I am new to PHP and I only need it to complete Action Script code I am working on.

Please help me, Thanks.

Link to comment
https://forums.phpfreaks.com/topic/200594-php-cant-access-the-directory-he-in/
Share on other sites

<?

 

// ---------------------------------------------------------------------------

// Get Files In Folders and SubFolder by Juliano Carlos da Silva <[email protected]>

// Copyright © 2004 Skull

// Date: 2004-02-03

// ---------------------------------------------------------------------------

class getfiles

{

function getfiles($dir,$ext)

{

$this->_fileList = array(); #aqui ele vai guardar todos os nomes dos arquivos

$this->_fileListPath = array(); #aqui ele vai guardar todos os nomes dos arquivos com o caminho

$this->returnPath = false; #se eh para retornar com ou caminho ou sem

$this->_noList[] = array(); #arquivos que foram desconsiderados

$this->_allFiles[] = array(); #todos os arquivos encontrados

$this->_folders[] = array(); #mostra todas as pastas

$this->_foldersPath[] = array(); #mostra todas as pastas com o caminho

$this->recursive = true; #se vai mostrar os subdiretorios

 

#verificar se o diretorio existe e se eh um diretorio

$dir = str_replace("\\","/",$dir);

if(!is_dir($dir))

{

echo "<BR><B>ERROR $dir!</b><BR>";

exit;

}

else #se for um diretorio ja guarda os diretorios visitados

{

$this->_foldersPath[] = $dir;

$this->_dir = $dir;

}

 

if(is_array($ext)) #grava as exteחץes dos arquivos para montar a lista

$this->_ext = $ext;

else

$this->_ext = array($ext);

 

$this->getFileList($this->_dir);

}

 

#vai montar a lista dos arquivos segundo os filtros acima

function getFileList($dir)

{

$_dir = $dir;

$aux = split("/",$dir);

$dir = $aux[count($aux)-1];

$this->_folders[] = $dir;

$path = str_replace($dir,"",$_dir);

$d = dir($path.$dir);

while (false !== ($entry = $d->read()))

{

if( ($entry != ".") && ($entry !="..") )

{

if(is_dir($d->path."/".$entry))

{

$this->_folders[] = $entry;

if($this->recursive)

$this->getFileList($path.$dir."/".$entry);

}

else

{

if($this->check($entry))

{

$this->_fileList[] = $entry;

$this->_fileListPath[] = $d->path."/".$entry;

}

else

$this->_noList[] = $entry;

$this->_allFiles[] = $entry;

}

}

}

$d->close();

}

 

#checa as extenחץes dos arquivos para ver se vai adicionar ou nao

function check($file)

{

foreach($this->_ext as $value) //Colaboracao de nosso amigo Ricardo Reis <[email protected]>

{

  if (strtoupper($this->ext($file)) == strtoupper($value))

  return true;

}

return false;

 

/*foreach($this->_ext as $value)

{

$ok = 0;

$aux = split("[.]",$file);

$ext = $aux[1];

if(strtoupper($ext) == strtoupper($value))

return true;

}

return false;*/

}

 

function ext($file) //Colaboracao de nosso amigo Ricardo Reis <[email protected]>

{

return array_pop(explode('.', basename($file)));

} // end.ext();

 

 

 

#verifica se vai trazer o arquivo com o caminho ou nao

function path($bool)

{

if(is_bool($bool))

$this->returnPath = $bool;

else

echo "Este valor de ser TRUE ou FALSE";

}

 

#retorna a lista em array com ou sem o caminho

function getList()

{

if($this->returnPath)

return $this->_fileListPath;

else

return $this->_fileList;

}

 

#retorna apenas os nomes dos arquivos

function getNameFiles()

{

return $this->_fileList;

}

 

#retorna os nomes dos arquivos com o caminho

function getFilesPath()

{

return $this->_fileListPath;

}

 

#retorna apenas os nomes dos arquivos que estao no diretorio mas nao foram usado

function getNoFiles()

{

return $this->_NoList;

}

 

#retorna todos os nomes dos arquivos

function getAllFiles()

{

return $this->_allFiles;

}

 

#retorna todas as pastas

function getFolders()

{

return $this->_folders;

}

 

#retorna todas as pastas com o caminho

function getFolderPath()

{

return $this->_foldersPath;

}

}

?>

 

 

I hope it will help you to help me  8)

Thank you.

 

I changed it to ./

 

And now I am getting:

<?xml version="1.0" ?>

<images>

<image filename="corners_left.png" />

<image filename="corners_right.png" />

<image filename="corners_left.png" />

<image filename="corners_right.png" />

<image filename="created_by.png" />

<image filename="created_by.png" />

<image filename="no_image.png" />

<image filename="BG.png" />

</images>

 

But the problem is that I got only "BG.png" file in that folder, and not all the others.

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.