Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc
Comunitatea PHP Romania
 

Contor de fisiere dintr-un director
Vezi mesajul original

 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> Cod PHP
Subiectul anterior :: Subiectul următor  
Autor Mesaj
marianphp



Data înscrierii: 16/Mar/2008
Mesaje: 8

Trimis: Dum Mar 16, 2008 9:40 pm    Titlul subiectului: Contor de fisiere dintr-un director  

Buna
Am doua fisiere php, unu contor.php si unu online.php
In contor.php se afla:
<?php
$director = opendir("des");
if (!$director){die("Nu se poate deschide");}
$citire = readdir($director);
while ($citire){
if ($citire != "." && $citire != ".." && $citire != "afisare_download.php" && $citire != "index.php" && $citire != "indexfiles" && $citire != "download.php" && $citire != "log.php" && $citire != "afis.php")
echo("<br>$citire");
$citire = readdir($director);
}
closedir($director);
?>


Iar in online.php care de fapt ii fisierul final care il folosesc cu include intr-o pagina am:

<?php
$continut = file_get_contents("contor.php");
$gets = substr_count ($continut,"<br>");
echo "$gets";
?>

Problema ii ca am gresit undeva de imi arata daca deschid online.php 1
si in directorul "des" am multe imagini jpg.
Oare care ar fi buba?
Sus  
badtiger



Data înscrierii: 03/Noi/2006
Mesaje: 233

Trimis: Dum Mar 16, 2008 10:45 pm    Titlul subiectului:  

foloseste

$matrice=scandir($director);
iar in $matrice vei avea un vector sortat alfabetic cu fisierele din $director si apoi pui intr-o bucla repetitiva si rezolvi treaba care ai nev
Sus  
marianphp



Data înscrierii: 16/Mar/2008
Mesaje: 8

Trimis: Dum Mar 16, 2008 11:25 pm    Titlul subiectului:  

apoi pui intr-o bucla repetitiva ???
Nu inteleg
Fal sa vad
Mersi
Sus  
mihaitha



Data înscrierii: 04/Mai/2007
Mesaje: 1587
Locație: Sibiu

Trimis: Lun Mar 17, 2008 9:45 am    Titlul subiectului:  

Modifica asa:
Cod:
...
while ($citire = readdir($director)) {
  if ($citire...) echo("<br>$citire");
}
...

Si da calea absoluta a folderului. De genul opendir('/home/site/public_html/des'). Sau cel mai sigur: opendir($_SERVER['DOCUMENT_ROOT'].'/des');
Sus  
marianphp



Data înscrierii: 16/Mar/2008
Mesaje: 8

Trimis: Lun Mar 17, 2008 10:13 am    Titlul subiectului:  

Am facut asa cum ai zis si imi afizeaza doar doua imagini din 6 ,am pus i calea cu opendir($_SERVER['DOCUMENT_ROOT'].'/des'); si cealata varianta dar nu merge.
Mie imi trebuie numarul curent de fisiere sa-mi afiseze, de exemplu am 6poze si 3 pdf-uri sa imi afiseze 9.
Mersi

<?php
$director = opendir('des');
if (!$director){die("Nu se poate deschide");}
$citire = readdir($director);
while ($citire = readdir($director)) {
if ($citire != "." && $citire != ".." && $citire != "afisare_download.php" && $citire != "index.php" && $citire != "indexfiles" && $citire != "download.php" && $citire != "log.php" && $citire != "afis.php")
echo("<br>$citire");
$citire = readdir($director);
}
closedir($director);
?>
Sus  
mihaitha



Data înscrierii: 04/Mai/2007
Mesaje: 1587
Locație: Sibiu

Trimis: Lun Mar 17, 2008 10:27 am    Titlul subiectului:  

Scoate linia $citire = readdir($director) din corpul while-ului si cea din afara lui. Citirea fisierelor din director se va face numai pe verificarea conditiei, nu mai e nevoie in afara. Asa e implementata functia readdir, porneste de la prima intrare din director (adica '.'), la o apelare iti returneaza numele fisierului si incrementeaza pointer-ul, iar dupa parcurgerea intregului folder iti va returna false (deci va iesi din while).

//edit: de asemeni, deca nu te intereseaza decat jpeg-urile, ai putea modifica conditia de validare (if-ul din while), de genul: Cod: ...
while ($citire = readdir($director)) {
   if (eregi('.jpg', $citire))
      echo "<br>$citire";
}
Sus  
marianphp



Data înscrierii: 16/Mar/2008
Mesaje: 8

Trimis: Lun Mar 17, 2008 1:01 pm    Titlul subiectului:  

Da mere , dar problema e ca daca deschid oline.php imi arata 1 in online.php se afla:
<?php
$continut = file_get_contents("contor.php");
$gets = substr_count ($continut,"<br>");
echo "$gets";
?>
Sus  
mihaitha



Data înscrierii: 04/Mai/2007
Mesaje: 1587
Locație: Sibiu

Trimis: Lun Mar 17, 2008 2:18 pm    Titlul subiectului:  

da un echo $continut; si vezi ce afiseaza.
Sus  
marianphp



Data înscrierii: 16/Mar/2008
Mesaje: 8

Trimis: Mar Mar 18, 2008 5:13 pm    Titlul subiectului:  

Nu imi arata nimic daca dau echo $continut;
Poate fii setat ceva gresit din phpini referitor la cale?
Sau blocat vreo functie,asta mi se intampla pe serverul pe care ii pus site ul , local merge brici.
Sus  
MihaiC



Data înscrierii: 14/Mai/2006
Mesaje: 1024
Locație: Navodari

Trimis: Mar Mar 18, 2008 7:07 pm    Titlul subiectului:  

probabil n-ai permisiuni de scriere.
In ftp, setezi 777 la permisiuni si ar trebui sa mearga.
Sus  
mihaitha



Data înscrierii: 04/Mai/2007
Mesaje: 1587
Locație: Sibiu

Trimis: Mie Mar 19, 2008 10:16 am    Titlul subiectului:  

Hmm... n-ar trebui sa aiba vreo legatura cu permisiile de scriere, doar nu scrie nimic, numai citeste outputul lui contor.php.

marian:
1. pune linia urmatoare la inceputul lui contor.php si al lui online.php:
Cod: error_reporting(E_ALL); Se poate sa ai erori care nu ti le afiseaza.
2. incearca alta varianta: modifica contor.php sa iti desparta afisarea fisierelor cu "\n" in loc de '<br>' si apoi in online.php citeste-i continutul cu functia file(). Asta ar trebui sa iti returneze un array, fiecare element din array continand cate o linie din output-ul lui contor.php. Numarul de elemente din array == numarul de fisiere din folder.
Sus  
MihaiC



Data înscrierii: 14/Mai/2006
Mesaje: 1024
Locație: Navodari

Trimis: Mie Mar 19, 2008 11:55 am    Titlul subiectului:  

A, lol !
Am vazut file_get_contents pe acolo si am crezut ca are o baza de date .txt
Banuiam ca d-asta nu ii afiseaza nimic. Pt. ca nu are permisiuni de scriere.
Sus  
marianphp



Data înscrierii: 16/Mar/2008
Mesaje: 8

Trimis: Dum Mar 23, 2008 9:29 pm    Titlul subiectului:  

La mine un 1km ii in momentul acesta de 1cm .
Am facut si cu file , asa era primadata pe server si intr-o zi fara ca eu sai fac ceva administatorul probabil ia modififat ceva serverului de nu mei vrea sa mearga, l am intrebat o zis ca nu o facut nimic.
Am observat ca daca ar citi dintr-un fisier .txt ar merge asa sa citeasca dintr-un fisier .php nu merge niciodata,,, adica sa ii dau calea folder/fiserul.txt (ar functiona) dar daca ii dau folder/contor.php(nimic)
am incercat si cu http:..... si cu http://www..... in fata si nimic
oare ce o fi modificat din php.ini sau de alt undeva?
Sus  
PHPRomania Bot
Bot Member


Data înscrierii: 27/Dec/2007
Mesaje: 1
Locaţie: Server Google
Trimis: Mie Dec 26, 2007 7:01 pm   Titlul subiectului: Ad  

Sus  
 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> Cod PHP
Pagina 1 din 1


Powered by phpBB 2.0.22 © 2001, 2002 phpBB Group
Varianta în limba română: Romanian phpBB online community