PHP - List the files in a directory [duplicate]

2

I have more than a thousand pages in html , I would like my script below to list all the files in a directory instead of being manually uploaded, today I have to do a one . It's not viable!

Please see the code below:

<?php

    $url = "lugar-amaricano-fundo-transparente-yangz-cp0012447.html"; /* ******** OBSERVAÇÃO: TEM COMO O script listar os arquivos em um diretório, ao invés de serem carregados manualmente? ******* */
    $content  = trim(file_get_contents($url));

    /*
        Função generica pode ser usada para pegar qualquer dado
        Retorna variável entre os valosres $ini(inicio) e $end(fim)
        $con = retorno do conteudo referênte ao html ou url
        $ini = inicio
        $end = fim
    */
    function getValues($ini, $end, $con){
        $value = explode( $ini , $con);
        $val = explode($end , $value[1] );
        return $val[0];
    }

    /*
        Função que retorna ID da marca
        retorna ID da marca passado como parâmetro.
        $val = marca
    */
    function getId($val){
        $array = str_split($val);
        $length = count($array);
        foreach($array as $key => $value){
            if($value == "_"){
                $ini = $key+4;
            }            
        }   

        return substr($val,$ini,3);
    }

    $titulo = getValues("<h1>", "</h1>", $content);
    $marca = getValues('<li>Marca: ', "</li>", $content);
    $modelo = getValues('<li id="modeloDoProduto">', "</li>", $content);
    $disponibilidade = getValues('<h4 class="stockProduto">', "</h4>", $content);
    $preco = getValues('<h2  id="precoDoProduto">', "</h2>", $content);
    $unidade = getValues('<p></p>', "</div>", $content);
    $id = getId($marca);

    echo 'Titulo: '.$titulo.'<br/>';
    echo 'Marca: '.$marca.'<br/>';
    echo $modelo.'<br/>';
    echo $disponibilidade.'<br/>';
    echo 'Preco: '.$preco.'<br/>';
    echo 'Unidade: '.$unidade.'<br/>';
    // echo 'id: '.$id.'<br/>'; /* ******** OBSERVAÇÃO: NÃO PRECISO DESTE ID ******* */

    /* ******** INÍCIO DA INCLUSÃO DE NOVOS PARAMENTROS ******* */
    $urldaimagem = getValues('<ul class="thumbnails">', "</ul>", $content);
    $explode = explode(' ', $urldaimagem);
    // o explode retorna uma matriz
    $urldaimagem = $explode[26];
    $urldaimagem2 = $urldaimagem;   
    $urldaimagem3 = str_replace('href="../image/cache/catalog/fornecedor1/', 'http://www.comprenet.com.br/image/cache/catalog/fornecedor1/', $urldaimagem2);
    $urldaimagem4 = str_replace('"', '', $urldaimagem3);

    $empresa = str_replace('href="../image/cache/catalog/fornecedor1/', '', $urldaimagem2);
    $empresa2 = str_replace('-500x500.jpg"', '', $empresa);

    echo 'URL da Imagem: '.$urldaimagem4.'<br/>';

    echo 'Codigo na empresa: '.$empresa2.'<br/>';
    echo 'URL do Produto: '.$url.'<br/>';

    $descricao = getValues('<div class="tab-pane active" id="tab-description">', "</div>", $content);
    echo 'Descrição do Produto: '.$descricao.'<br/>';
    echo '******************************'.'<br/>';
    /* ******** FIM DA INCLUSÃO DE NOVOS PARAMENTROS ******* */

?>
    
asked by anonymous 13.01.2017 / 20:58

2 answers

4

You can use scandir: documentation here

Here is a simple example of the documentation:

<?php
$dir    = '/tmp';
$files1 = scandir($dir);
$files2 = scandir($dir, 1);

print_r($files1);
print_r($files2);


/*
Saida:
Array
(
    [0] => .
    [1] => ..
    [2] => bar.php
    [3] => foo.txt
    [4] => somedir
)
Array
(
    [0] => somedir
    [1] => foo.txt
    [2] => bar.php
    [3] => ..
    [4] => .
)
*/

I did not apply the solution to your code because of the difficulty of testing. However, the use is simple and certainly you could use without problems.

    
13.01.2017 / 21:05
1

Example to filter only files with the .html extension. It will return an array with the name of the files, where path is the path of the folder where your files are.

Code:

<?php

$path = 'C:\exemplo\';

$files = str_replace($path, "", glob($path . "*.html"));

print_r($files);

?>

Output:

Array
(
   [0] => teste.html
)
    
13.01.2017 / 21:26