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 --- incepator
Vezi mesajul original

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



Data înscrierii: 11/Iun/2004
Mesaje: 206
Locație: Undeva, departe

Trimis: Lun Ian 31, 2005 3:18 am    Titlul subiectului: fopen --- incepator  

Am un fisier txt (in jur de 10.000 de inregistrari) de genu

1|persoana_b|secretariat|salariu|altebalarii
2|persoana_c|secretariat|salariu|altebalarii
3|persoana_d|secretariat|salariu|altebalarii
4|persoana_e|secretariat|salariu|altebalarii
.....

cum fac , ca prin intermediul fopen(lista.txt) sa il deschid si sa imi bage in variabile in functie de primul nr. restul , adika in funcite de 1 sa imi bage intr-o variabila $user==persoanab $locatie==secretariat $salariu==salariu $altele==altebalari .
dau o bere :D
Sus  
carco



Data înscrierii: 27/Mai/2004
Mesaje: 2796
Locație: Bucuresti

Trimis: Lun Ian 31, 2005 8:56 am    Titlul subiectului:  

fopen si explode
Sus  
UzZzY



Data înscrierii: 11/Iun/2004
Mesaje: 206
Locație: Undeva, departe

Trimis: Lun Ian 31, 2005 9:36 am    Titlul subiectului:  

dar cum fac ca din 10.000 de randuri sa imi identifice randul care incepe cu 5874 ?
Sus  
smorosanu



Data înscrierii: 21/Ian/2005
Mesaje: 32

Trimis: Lun Ian 31, 2005 7:14 pm    Titlul subiectului:  

1 scoti intreg fisierul intr-un array- ca si cum ar fi un csv dar cu separator "|" in loc de ","
iaca cum: (paste din manual)

<?php
$row = 1;
$handle = fopen("test.csv", "r");
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$num = count($data);
echo "<p> $num fields in line $row: <br />\n";
$row++;
for ($c=0; $c < $num; $c++) {
echo $data[$c] . "<br />\n";
}
}
fclose($handle);
?>

sau

2.scoti fisierul intr-un string si parsezi string-ul cu o expresie regulata:
preg_match_all( "/([0-9]+)\|(.*)\|(.*)\|(.*)\|(.*)(\n)/", $contents, $array_match);

echo "<pre>";
print_r($array_match[0]);
echo "</pre>";


fiecare din elementele din expresie
sunt de forma
la $array_match[0][0] = gasesti numarul
la $array_match[0][1]; = gasesti stringu' 1
etc..

uita-te in manual la preg_match_all()

pentru linia X chestia devine f usoara..
sugestie daca sunt in ordine.. e normal ca linia sa fie la pozitie+1 (asta in array-ul din csv de exemplu)

daca nu sunt in ordine folosesti expresia. in loc de ([0-9]+) devine numaru' pe care il vrei matale

cele bune,
sorin
Sus  
UzZzY



Data înscrierii: 11/Iun/2004
Mesaje: 206
Locație: Undeva, departe

Trimis: Mar Feb 01, 2005 10:33 am    Titlul subiectului:  

Multumesc tuturor pt. raspunsuri (pana la urma am importat totul in mysql , tot aici pe forum an gasit solutia :d)
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 -> PHP Incepători
Pagina 1 din 1


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