Autor Zpráva
Nevínek
Profil *
Potřeboval bych z jednoho log (txt) souborů načítat do pole určité udaje, ale nevím jak nato :-(

Půjde o textový soubor dat ve kterém budou přibližně data vypadat asi takto:
files info
---------
180266	D:\images\leto.jpg
end of sort
-----------
173583	D:\images-sport\fotbal.png
229302	D:\images-girl\candy.jpg
*poznamka*
211226	D:\images-music\dance.gif


Potřebuju ty adresy dostat do řetězů... tak aby pole[0] obsahovalo pouze text D:\images\leto.jpg
pole[1] D:\images-sport\fotbal.png... atd.

Posloupnost řetezců (výskytů) musí být zachována.
Ostatní data nepotřebuji a nevím jak to odfiltrovat při výběru do pole....
sysel
Profil
V PHP existuje celá řada funkcí pro práci se soubory a souborovým systémem, ale pokud jsem pánem těch dat a mohu rozhodnout o formě jejich uložení, radši bych se naučil MySQL a data si syslil rovnou tam. Pokud jde právě o převod dat ze souboru do databáze, asi bych se pokusil textový soubor nejprve trochu učesat třeba ve spreadsheetu a převedl ho na formu importovatelnou přímo do MySQL. Jde-li o pravidelnou údržbu logů, no to nezávidím. Jen si, prosím, uvědomte, že někde v php.ini musíte mít povoleno pracovat se soubory!
Majkl578
Profil
Po trošce teorie a doporučení od sysla k praktickému vyřešení problému.

Řešeno pomocí regulárního výrazu:
$data = <<< DATA
180266    D:\images\leto.jpg
end of sort
-----------
173583    D:\images-sport\fotbal.png
229302    D:\images-girl\candy.jpg
*poznamka*
211226    D:\images-music\dance.gif
DATA;

preg_match_all('~^\d+\s+(.*)$~m', $data, $matches);

var_dump($matches[1]);
sysel
Profil
Majkl578:
praktickému vyřešení problému
Děkuji Majklovi, popravdě jsem chtěl pohnout Nevíneka, aby se vyjádřil, kde je hlavní problém. Vždy je mi líto, když v diskusi léčíme úplně jinou chorobu, než na jakou tazatel umírá :-) Jinak všechna čest, brilantní RegExp.
Nevínek
Profil *
O pravidelnou upravů logu se nejedná, programuju si jednu interní aplikaci pro svůj Local host... Doporučený Reg. výraz jsem si trošku poupravil, jelikož ty data se tam trošku budou "měnit", ale vpodstatě jde o rozumné funkční řešení, takže děkuji za reakce

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0