 |
Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Comunitatea PHP Romania
|
| 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 |
|
| |
|