Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

parsiranje textualnog fajla

[es] :: PHP :: parsiranje textualnog fajla

[ Pregleda: 2114 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

vukasin0
Vukasin Nikodijevic
Beograd

Član broj: 15203
Poruke: 94
*.dynamic.sbb.rs.



+1 Profil

icon parsiranje textualnog fajla27.04.2008. u 09:43 - pre 151 meseci
Pozdrav svima,

Imam rekao bi sitan problemcic za iskusne PHP-eovce ali za mene pocetnika ogroman. Zapravo ja i nisam programer nego admin koji uci skriptovanje.
Problem je sledeci:
Dobio sam txt fajl koji je exportovan iz LDAP servera i iz njega treba da izdvojim username i password za svakog korisnika i te podatke ubacim u mysql bazu.Parametri su oznaceni u fajlu sa "uid=" i "userpassword=".
Ono sto sam do sada uspeo je da izdelim text u blokove i smestim array pomocu funkcije explode. Moje pitanje glasi: kako da pretrazim sadrzaj svakog bloka array-a i to sto pronadje da mi iskopira ceo red u promenljivu.


Moja skripta izgleda ovako:


Code:
<?php

$file = "ldap.txt";

$fp = fopen($file, 'r');  //otvara file sa fajlsistema u read modu
if(!$fp)
{
    die("Ne mogu da otvorim file: $fp");
}
else
{
    $con = fread($fp, filesize($file));   
    $con_red = explode("\n", $con);  //segmentira fajl po zadatom uslovu i smesta u array
    $num_red = count($con_red);
    for($i = 0; $i <= $num_red; $i++)
    {

        $hhd = $con_red[$i];
        $con_blue = ereg_replace( ",", "\n", $hhd);
        //echo $hhd;                 //stampa svaki blok iz array-a 
        //print "\n";
     }
}

?>






Primer texta :



uid=lucy.batista,cn=users,dc=prod,dc=research,dc=loc
c=Canada
cn=Lucy Batista
givenname=xxxxxxx
mail=xxxxxxxxxxxxxxxxxxxx
userpassword=sifra

uid=lucy.blakemore,cn=users,dc=prod,dc=research,dc=loc
c=United Kingdom
cn=Lucy Blakemore
userpassword=password

uid=Lucy.Paxman,cn=users,dc=prod,dc=research,dc=loc
c=Australia
cn=Lucy Paxman
userpassword=password



Hvala!!!!!!!!!!!!!!!


[Ovu poruku je menjao Nemanja Avramović dana 27.04.2008. u 11:58 GMT+1]
 
Odgovor na temu

hatebreeder
Sinisa Bobic
Belgrade

Član broj: 48145
Poruke: 192
91.185.124.*

Jabber: sinisabobic@gmail.com
ICQ: 339407553
Sajt: www.sinisabobic.com


Profil

icon Re: parsiranje textualnog fajla27.04.2008. u 13:48 - pre 151 meseci
a da nije mozda malo lakse da u celom tom fajlu trazis sve sto se nalazi izmedju uid= i \n\n koristeci preg_match_all i posle se igras sa podatcima koji ti preostanu u svakom segmentu od toga... nemam sad vremena da ti pisem kako to u tvom slucaju t reba da izgleda al evo ti neki moj gotov primer kako sam davno parsirao b92 rss...

Code:

<?php
   $handler = file_get_contents("http://www.b92.net/info/rss/vesti.xml");

   preg_match_all("/\<item\>(.*)\<\/item\>/iUs", $handler, $items);

   $i = 1;
   foreach ($items[1] as $tmp1 => $item) {
     //u $item ostaje sve izmedju <item> i </item> najblizeg
     preg_match_all("/\<title\>(.*)\<\/title\>/iUs", $item, $info1);
     preg_match_all("/\<description\>(.*)\<\/description\>/iUs", $item, $info2);

     $title = $info1[1][0];
     $title = html_entity_decode($title);

     $description = $info2[1][0];
     $description = strip_tags(html_entity_decode($description));

     if (strlen($description) <= 10) break;
     echo "<strong>$i: $title</strong>\n<br /><br />$description<hr />\n";
     $i++;
   }
?>


verujem da ces razumeti kako je sta radjeno... tako nesto uradis i ti samo umesto echo-a stavis sve u neki array ili sta ti vec treba
 
Odgovor na temu

kelja

Član broj: 70429
Poruke: 1416
77.46.228.*



+35 Profil

icon Re: parsiranje textualnog fajla27.04.2008. u 17:43 - pre 151 meseci
Mozda nesto ovako?
Code:

$niz=file('ime_text_fajla.txt');
for($i=0;$i<count($niz);$i++){
if(eregi("uid=.+",$niz[$i],$match1)){
echo str_replace(",cn=users,dc=prod,dc=research,dc=loc","",$match1[0])."<br>";
}
if(eregi("userpassword=.+",$niz[$i],$match2)){
echo $match2[0]."<br>";
}
}


Ako ceo dokument ima ovakvu strukturu, kakvu si naveo u primeru, ovo bi, valjda, moglo da odradi pos'o.
 
Odgovor na temu

Jbyn4e

Član broj: 422
Poruke: 6049
89.110.206.*



+256 Profil

icon Re: parsiranje textualnog fajla27.04.2008. u 18:42 - pre 151 meseci
Meni samo nije jasno zasto kao admin koristis php, umesto vec mocnog shell scriptinga (npr awk bi ti ovde odradio posao, sve u jednoj ili 2 for petlje) , napravis fajl sa insert komandama i pozoves mysql da to ubacis u bazu.
Ali dobro, valjda ce ti ove varijante koje su ljudi dali raditi posao.

Kad sve ostalo zakaže, pročitaj uputstvo...
 
Odgovor na temu

[es] :: PHP :: parsiranje textualnog fajla

[ Pregleda: 2114 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.