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
 

fopen ($variabila,"r") nu merge?
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
tepes



Data înscrierii: 03/Apr/2003
Mesaje: 58

Trimis: Mar Apr 22, 2003 3:47 pm    Titlul subiectului: fopen ($variabila,"r") nu merge?  

am un fisier index.txt in care sunt scrise:
fisier1.txt
fisier2.txt
fisier3.txt

vreau sa prelucrez fisierele respective si am scris urmatorul cod:

$handle = fopen ("index.txt","r");
while (!feof ($handle)) {
$dfis = fgets($handle);
$updfis = fopen ($dfis,"r");
while (!feof ($updfis)) {
$buffer = fgets("$updfis","r");
$query = "INSERT INTO muzica (Artist, Piesa, Timp, Marime, Hz, Kbit, Cale, Fisier) VALUES ($buffer)";
$doit = mysql_query($query) or die("$query".mysql_error());
}
}

:arrow: unde am ingrosat, am problema... adica if($updfis) e null :roll: si nu stiu de ce... fopen() nu suporta variabila? cum pot sa fac altfel?
:arrow: exista vre-o functie care sa caute in directorul curent anumite fisiere? (ex: *.txt)
Sus  
killahbeez



Data înscrierii: 16/Apr/2003
Mesaje: 18

Trimis: Mar Apr 22, 2003 7:09 pm    Titlul subiectului:  

$fisiere=file("fisiere.txt","r");
foreach($fisiere as $value){
$fp=fopen(trim($value),"r");
$contents="";
if($fp){
while(!feof($fp)){
$contents.=fgets($fp,1024);
}
fclose($fp);
}
echo $contents;
}

Acum, daca nu citesti si tu manualul, unele lucruri normal sa nu mearga.
La fgets scrie ceva de genul "If no length is specified, the length defaults to 1k, or 1024 bytes"
Sus  
tepes



Data înscrierii: 03/Apr/2003
Mesaje: 58

Trimis: Mar Apr 22, 2003 8:38 pm    Titlul subiectului:  

$handle = fopen ("index.txt","r");
while (!feof ($handle)) {
$dfis = fgets($handle);
$updfis = fopen ($dfis,"r");
while (!feof ($updfis)) {
$buffer = fgets("$updfis","r");
$query = "INSERT INTO muzica (Artist, Piesa, Timp, Marime, Hz, Kbit, Cale, Fisier) VALUES ($buffer)";
$doit = mysql_query($query) or die("$query".mysql_error());
}
}

De fapt aici era problema... fgets("$updfis"); si nu fgets("$updfis","r");
Stiam care e lungimea implicita... 10x pentru indrumare oricum...
Am rescris codul astfel:

foreach (glob("CD*.txt") as $filename) {
$handle = fopen ($filename,"r");
if($handle) echo "<br><b>Fisier: $filename</b>";
else echo "<br><b>Eroare deschidere fisier $filename</b>";
$nrin = 1;
while (!feof ($handle)) {
$buffer = fgets($handle);
if($buffer) {
$query = "INSERT INTO muzica (Artist, Piesa, Timp, Marime, Hz, Kbit, Cale, Fisier) VALUES ($buffer)";
$doit = mysql_query($query) or die("$query".mysql_error());
$nrin++;
}
}
echo "<br>Am incarcat: <b>$filename</b>, $nrin inregistrari<br>";
}

...si merge perfect... :twisted:
10x again pentru ideea cu foreach... ca nu stiam de el...
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