Witam

Dopiero zaczynam przygodę z php i natknąłem się na pierwszy problem którego nie mogę rozwiązać w dłużej niż 24 godziny.

Chcę importować treść pliku do tabeli w MYSQL (z samym zapisywaniem do mysql sobie bym poradził).

Mam taki oto przykładowy plik http://www.forumbiznesu.eu/20080110
Zawiera on (skrócone) ogłoszenia logicznie posegregowane, jednak w specyficzny sposób (przez co utrudnia mi to wydobycie poszczególnych treści.

oto przykład:
Kod
<pre>INTERNET - 2008-01-10 - WARSZAWA - SPRZEDAM - KAWALERKĘ, JEDNOPOKOJOWE

0501621961   URSYNÓW, KOMISJI EDUKACJI NARODOWEJ, 36,5 m2 c.438 000,00 PLN, do negocjacji tel:0501 621 961, 022 760 90 83 (�ródło: INTERNET(1))

INTERNET - 2008-01-10 - WARSZAWA - SPRZEDAM - DWUPOKOJOWE

0696944768   OCHOTA, WŁODARZEWSKA, 48 m2 c.570 000,00 PLN tel:696944768 (�ródło: INTERNET(1))
0226736213   PRAGA PŁD., BRACŁAWSKA, 38 m2 c.310 000,00 PLN tel:(22)6736213 (�ródło: INTERNET(1))
0693834882   BIAŁOŁĘKA, ODKRYTA, 40 m2 c.340 000,00 PLN, do negocjacji tel:0693834882 (�ródło: INTERNET(1))
0608523294   MARKI, MARKI, KOSYNIERÓW, 41 m2 c.284 000,00 PLN, do negocjacji tel:608 523 294 (�ródło: INTERNET(1))
0605619847   WILANÓW, SARMACKA, 58 m2 c.615 000,00 PLN tel:605619847 (�ródło: INTERNET(1))
0508019756   PRAGA PŁN., TARGOWA, 49 m2 c.385 000,00 PLN, do negocjacji tel:508019756, 500175874 (�ródło: INTERNET(1))
0695995872   BEMOWO, NARWIK, 58 m2 c.460 000,00 PLN tel:695995872 (�ródło: INTERNET(1))
0607169929   WILANÓW, 82,28 m2 c.835 000,00 PLN tel:607169929 (�ródło: INTERNET(1))
0609221122   BEMOWO, OBROŃCÓW TOBRUKU, 57 m2 c.590 000,00 PLN tel:0609221122 (�ródło: INTERNET(1))
0510631592   WILANÓW, KRÓLOWEJ MARYSIEŃKI, 50 m2 c.415 000,00 PLN tel:510631592 (�ródło: INTERNET(1))
0603328514   PRAGA PŁD., 47,5 m2 c.372 875,00 PLN, do negocjacji tel:603328514 (�ródło: INTERNET(1))
0694395303   BIAŁOŁĘKA, BAREI, 45,2 m2 c.340 000,00 PLN, do negocjacji tel:694395303 (�ródło: INTERNET(1))
0695850331   TARGÓWEK, BALKONOWA, 37 m2 c.275 000,00 PLN tel:0695 850 331 (�ródło: INTERNET(1))
0501967437   PRAGA PŁN., �W. PATRYKA, 38 m2 c.387 000,00 PLN tel:501967437 (�ródło: INTERNET(1))

INTERNET - 2008-01-10 - WARSZAWA - SPRZEDAM - TRZYPOKOJOWE

0664085144   MOKOTÓW, BUKOWIŃSKA, 48 m2 c.380 000,00 PLN tel:0664085144, 0604277443 (�ródło: INTERNET(1))
0602355527   OCHOTA, PAWIŃSKIEGO, 45 m2 c.414 000,00 PLN tel:0602355527 (�ródło: INTERNET(1))
0694428605   ŻOLIBORZ, GWIAżDZISTA, 95 m2 c.940 000,00 PLN tel:48 694 428 605 (�ródło: INTERNET(1))
0226220145   �RÓDMIE�CIE, WSPÓLNA, 63 m2 c.745 000,00 PLN, do negocjacji tel:022 622 01 45, 886 114 530 (�ródło: INTERNET(1))
0509733338   WYSZKÓW, WYSZKÓW, GEODETÓW, 62,5 m2 c.240 000,00 PLN, do negocjacji tel:509733338 (�ródło: INTERNET(1))

INTERNET - 2008-01-10 - WARSZAWA - SPRZEDAM - CZTEROPOKOJWE, WIĘKSZE

0509251474   URSYNÓW, RAJSKICH PTAKÓW, 80 m2 c.810 000,00 PLN tel:509251474 (�ródło: INTERNET(1))

INTERNET - 2008-01-10 - WARSZAWA - SPRZEDAM - DOM

0601305993   KOLONIA PROMNA c.950 000,00 PLN, do negocjacji tel:601305993 (�ródło: INTERNET(1))
0600050445   KOZIENICE, 195 m2 c.265 000,00 PLN, do negocjacji tel:600050445 (�ródło: INTERNET(1))
0601336765   USTANÓW, 230 m2 c.1 000 000,00 PLN tel:601336765 (�ródło: INTERNET(1))
0228266435   SŁUPNO, NORWIDA c.750 000,00 PLN tel:022 826 64 35 (�ródło: INTERNET(1))
0604292938   PĘCICE MAŁE, 450 m2 c.2 500 000,00 PLN tel:0604 29 29 38 (�ródło: INTERNET(1))
0693150678   MUSUŁY, 200 m2 c.680 000,00 PLN tel:693 150 678 (�ródło: INTERNET(1))
0601222202   NOWA IWICZNA, KRASICKIEGO, 110 m2 c.2 200 000,00 PLN tel:601222202 (�ródło: INTERNET(1))
0601242032   MICHAŁÓW GRABINA, 199 m2 c.800 000,00 PLN tel:0601242032 (�ródło: INTERNET(1))

INTERNET - 2008-01-10 - WARSZAWA - SPRZEDAM - GRUNT

0501346837   SEROCK, IZBICA-WIE�, 2000 m2 c.300 000,00 PLN, do negocjacji tel:501346837 (�ródło: INTERNET(1))
0601852888   WIKTORÓW, 1500 m2 c.742 500,00 PLN tel:0601852888 (�ródło: INTERNET(1))
0602331471   MARYNINO, 1000 m2 c.210 000,00 PLN tel:602-331-471 (�ródło: INTERNET(1))
0602373463   FALENTY NOWE, 1500 m2 c.600 000,00 PLN tel:602373463 (�ródło: INTERNET(1))
0504021051   ZAŁUBICE NOWE, 4000 m2 c.36 000,00 PLN, do negocjacji tel:504021051 (�ródło: INTERNET(1))
0607657262   CHRZANÓW MAŁY, 3608 m2 c.400 000,00 PLN, do negocjacji tel:607657262 (�ródło: INTERNET(1))
0605629269   MIENIA ... 8KM OD MINSKA MAZ., 16000 m2 c.410 000,00 PLN, do negocjacji tel:605-629-269 506-828-854 (�ródło: INTERNET(1))</pre>


Składnia pliku:
Linijka "kategorii" -Zawsze dużymi literami, zawsze zaczyna sie od opisania źródła -
Kod
INTERNET - 2008-01-10 - WARSZAWA - SPRZEDAM - KAWALERKĘ, JEDNOPOKOJOWE
mówi nam, że źródłem ogłoszenia jest internet
Kod
INTERNET
, pobrane w dniu 10-01-2008
Kod
2008-01-10
, nieruchomość jest w mieście Warszawa
Kod
WARSZAWA
, jest to ogłoszenie sprzedaży
Kod
SPRZEDAM
, typ nieruchomości to Kawalerka lub jednopokojowe mieszkanie
Kod
KAWALERKĘ, JEDNOPOKOJOWE
.
Linijka "szczegółów" - zawsze zaczyna się od zera i numeru telefonu -
Kod
0501621961   URSYNÓW, KOMISJI EDUKACJI NARODOWEJ, 36,5 m2 c.438 000,00 PLN, do negocjacji tel:0501 621 961, 022 760 90 83 (�ródło: INTERNET(1))
mówi nam, że telefon kontaktowy to 501621961
Kod
0501621961
, lokalizacja na Ursynowie
Kod
URSYNÓW
, treść ogłoszenia
Kod
KOMISJI EDUKACJI NARODOWEJ, 36,5 m2 c.438 000,00 PLN, do negocjacji tel:0501 621 961, 022 760 90 83
, dokładne źródło
Kod
(�ródło: INTERNET(1))


Jak widzicie, ogłoszenia z danej kategorii oddzielone są od linijki "kategorii" jedną wolną linijką. Dodatkowo parametry oddzielone są za każdym razem inaczej, raz przecinek, raz spacja, raz myślnik, raz znak tabulacji.

Interesuje mnie żeby "wydobyć" dane w ten sposób, móc dodawać do tabeli rekordy w postaci

$rodzaj_transakcji, $typ_nieruchomosci, $miasto, $lokalizacja, $opis, $telefon, $data , $dokladne_zrodlo



Proszę o pomoc w zrobieniu tego skryptu. (Najchętniej w przykładach)

juz sobię z tym poradziłem, zamieszczam wersję która wyświetla, a nie zapisuje parametry.

Kod
<?php

$plik = file('http://www.forumbiznesu.eu/20080110'); // pobranie zawarto¶ci pliku do tablicy

$pierwsza = 1;
$ostatnia = count($plik)-1;

echo '<table border="1" width="100%">';

for ($i = $pierwsza; $i >= $pierwsza, $i <= $ostatnia; $i++)
{
     $linia = $plik[$i]; // tablica indeksowana jest od 0, dlatego $plik[2]
     $linia = chop($linia); // funkcja chop() usuwa znaki końca linii

     $start = substr($linia, 0, 10);

     $szukany = "([0-9]){10,}";
     $szukany2 = " - 2";

     if (ereg($szukany, $linia))
     {
         list($tel, $opis) = explode("   ", $linia);

         $adres = $linia;
         $begin = 13;
         $end = ',';

         $source = $adres;
         $end_pos = strpos($source, $end);
         $lokalizacja = substr($source, $begin, $end_pos - $begin);
        
         echo "
         <tr><td>$zrodlo</td></tr>
         <tr><td>$data</td></tr>
         <tr><td>$gdzie</td></tr>
         <tr><td>$rodzaj</td></tr>
         <tr><td>$typ</td></tr>
         <tr><td>$tel</td></tr>
         <tr><td>$opis</td></tr>";
        
         if ($lokalizacja = "([0-9]+)")
         {
         echo"<tr><td>&nbsp;</td></tr>";
         }
        
         else
         {
             echo "<tr><td>$lokalizacja</td></tr><tr><td>&nbsp;</td></tr>";
         }
     }
    
     elseif (ereg($szukany2, $linia))
     {

         list($zrodlo, $data, $gdzie, $rodzaj, $typ) = explode(" - ", $linia);
     }

     else
     {

     }
}

echo "</table>";

?>