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