Autor Zpráva
vojtan
Profil
Mám takový dotaz. Potřebuji vypsat část textu, který se nachází v textovém souboru txt, ten text vypadá nějak takto

...
*20*1*Infrapanely realizace*1*0**1314184801****
*23*1*Vzorník mořidel dřevěných rámů ITZ*1****
*24*20*Infrapanely v rodinném domě*1*1*0**1314186458****
...

a já potřebuji vypsat vždy jen tu část, která souvisí s požadovaným id - třeba mám id 23 a potřebuji získat ten popisek, který se k němu vztahuje, tedy - Vzorník mořidel dřevěných rámů ITZ.

Jak to mám udělat, existuje na to nějaká funkce?
Děkuji za pomoc
Tori
Profil
vojtan:
Jak velký je ten soubor? Řádově desítky řádků, nebo stovky a víc?
vojtan
Profil
Tori:
je tam více než sto řádků
Tori
Profil
vojtan:
Tak potom bych procházela postupně řádky v souboru (fgets) a hledala ID:
if (strpos($radek, "*$id*") === 0) { // našli jsme řádek s tímto ID. (musí tu být === )
Popisek pak vytáhnete buď regulárem (preg_replace) anebo rozdělením řádku do pole (explode).

Kdyby to byl kratší soubor, šlo by ho načíst celý (file_get_contents) a prohledat regulárem. U asi tisíce řádků už bude myslím rychlejší to čtení po řádcích (ale nevím přesně, kde je hranice, takže vyzkoušejte).
Tori
Profil
Tori:
Tak potom bych procházela postupně řádky v souboru (fgets) a hledala ID:
Oprava: Jsem to teď zkoušela - dokud se vám soubor vejde do paměti, tak je dvakrát rychlejší file_get_contents + preg_replace (platí pro 100 i 100k řádků).

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