Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] preg_match_all
Forum PHP.pl > Forum > Przedszkole
blizniak
Witam
szukalem na forum, sa rozne przyklady ale nadal nie moge sobie z tym poradzic
mianowicie chodzi o preg_match_all
jak za pomoca tej funkcji wyciagnac wszystko to co jest pomiedzy option
tz Ateny
Bolonia
Cork itd

  1. <td width="220px">
  2. <select name='sector1_o' size='1' onChange="changeOrigDestList(document.search_form.sector1_o, document.search_form.sector1_d, 'Miejsce przylotu', false, 1);" class='inputm' style="width: 220px;"><option value='XXX' selected='selected'>Miejsce wylotu</option>
  3.  
  4. <option value='aATH' >Ateny (ATH)</option>
  5. <option value='aBLQ' >Bolonia (BLQ)</option>
  6. <option value='aORK' >Cork (ORK)</option>
  7. <option value='aDUB' >Dublin (DUB)</option>
  8.  
  9. <option value='aEDI' >Edynburg (EDI)</option>
  10. <option value='aGDN' >Gdańsk (GDN)</option>
  11. <option value='aGRO' >Girona/Barcelona (GRO)</option>
  12. <option value='aGNB' style='color: #0000ff;'>Grenoble/Lyon (GNB) (od 01.12)</option>
  13. <option value='aKTW' >Katowice (KTW)</option>
  14. <option value='aKRK' >Kraków (KRK)</option>
  15.  
  16. <option value='aLIL' >Lille (LIL)</option>
  17. <option value='aLGW' >Londyn Gatwick (LGW)</option>
  18. <option value='aSTN' >Londyn Stansted (STN)</option>
  19. <option value='aLCJ' >Łódź (LCJ)</option>
  20. <option value='aMAN' >Manchester (MAN)</option>
  21. <option value='aBVA' >Paryż (BVA)</option>
  22.  
  23. <option value='aPOZ' >Poznań (POZ)</option>
  24. <option value='aCIA' >Rzym Ciampino (CIA)</option>
  25. <option value='aSNN' >Shannon (SNN)</option>
  26. <option value='aSZZ' >Szczecin (SZZ)</option>
  27. <option value='aWAW' >Warszawa (Okęcie) (WAW)</option>
  28. <option value='aWRO' >Wrocław (WRO)</option> </select>
  29.  
  30. </td>


w wyniku dostaje albo array albo pusta strone
kossa
Pokaż co stworzyłeś a znajdziemy błąd smile.gif

Łukasz
drPayton
  1. <?php
  2. $string = "
  3. <option value='aATH' >Ateny (ATH)</option>
  4. <option value='aBLQ' >Bolonia (BLQ)</option>
  5. <option value='aORK' >Cork (ORK)</option>
  6. <option value='aDUB' >Dublin (DUB)</option>
  7. cośinnego
  8. <optionn value='aDUB' >Warsaw</option>
  9. ";
  10.  
  11. preg_match_all("/<option[[:space:]].*?>([^<]+)</option>/is", $string, $matches, PREG_PATTERN_ORDER);
  12.  
  13. echo "<pre>";
  14. print_r($matches);
  15. echo "</pre>";


Efekt:
Kod
Array
(
    [0] => Array
        (
            [0] => Ateny (ATH)
            [1] => Bolonia (BLQ)
            [2] => Cork (ORK)
            [3] => Dublin (DUB)
        )

    [1] => Array
        (
            [0] => Ateny (ATH)
            [1] => Bolonia (BLQ)
            [2] => Cork (ORK)
            [3] => Dublin (DUB)
        )

)
blizniak
zrobilem tak samo jak w poscie wyzej tylko dla innych danych i nie za bardzo to dziala tz

  1. <?php
  2. $url = "http://www.air-europa.pl/93,Centralwings-news.html";
  3. $string = file_get_contents ( $url );
  4.  
  5. preg_match_all("/<font[[:space:]].*?></font>/is", $string, $matches, PREG_PATTERN_ORDER);
  6. echo "<pre>";
  7. print_r($matches);
  8. echo "</pre>";


i chodzi o to zeby pobrac rozklad lotow z tabeli ktory jest na tej stronie tutaj

  1. 1 Bolonia Warszawa Centralwings 2/4/6 04.12.2006 - 22.03.2007 09:20 11:35 Więcej >>>
  2. 2 Bolonia Kraków Centralwings 2/6 02.12.2006 - 20.03.2007 14:55 16:50 Więcej >>>
  3. 3 Cork Wrocław Centralwings 2/4 31.10.2006 - 06.02.2007 07:05 09:20 Więcej >>>
  4. 4 Cork Kraków Centralwings 2/4 31.10.2006 - 28.11.2006 14:50 17:10 Więcej >>>
  5. 5 Cork Warszawa Centralwings 4/6 29.03.2007 - 28.04.2007 06:55 09:15 Więcej >>>
  6. 6 Dublin Gdańsk Centralwings 3/5/7 29.11.2006 - 16.12.2006 14:25 16:25 Więcej >>>
  7. 7 Dublin Katowice Centralwings 3/5 15.12.2006 - 20.12.2006 21:30 23:40 Więcej >>>
  8. 8 Dublin Katowice Centralwings 1/4/6 14.12.2006 - 24.12.2006 05:15 07:25 Więcej >>>
  9. 9 Dublin Wrocław Centralwings 3/5/7 06.11.2006 - 04.02.2007 07:15 09:15 Więcej >>>
  10. 10 Edynburg Warszawa Centralwings 3/5/7 08:00 10:05 Więcej >>>
  11. 11 Edynburg Gdańsk Centralwings 2/6 31.10.2006 - 15.12.2006 17:10 18:40 Więcej >>>
  12. 12 Edynburg Katowice Centralwings 3/7 14.12.2006 - 31.01.2007 05:05 06:50 Więcej >>>
  13. 13 Gdańsk Edynburg Centralwings 2/4/6 16.12.2006 - 23.12.2007 10:00 13:20 Więcej >>>
  14. 14 Grenoble Warszawa Centralwings 6 30.12.2006 - 24.03.2007 15:00 17:35 Więcej >>>
  15. 15 Katowice Edynburg Centralwings 2/4/6 14.12.2006 - 31.01.2007 19:25 23:05 Więcej >>>


wie ktos jak poprawic ten kod zeby dzialal dobrze
drPayton
Nie zrobiłeś to samo, usunąłeś najważniejszą część w regexpie. Przypatrz się dobrze temu co napisałem ja i temu co Ty stworzyłeś. Różnica jest wyraźnie widoczna (i ni e mówię tu o tagu...)
blizniak
ale jak zrobie tak

  1. <?php
  2. preg_match_all("/<font[[:space:]].*?>([^<]+)</font>/is", $string, $matches, PREG_PATTERN_ORDER);


to tez nie dziala
drPayton
Wrzuć tu fragment kodu ze źródła tej strony (jest tak duże że mi się sprzęt składa, złom tongue.gif)
blizniak
to jest kodu tej tabelki

  1. <th nowrap>Lp</th> <th nowrap><font color='#063887'> Lot do </th><th nowrap><font color='#063887'> Odlot z </th><th>ol<font color='#ff0000'>Kup bilet</th><th><font color='#063887'>Dni wylotów</th><th><font color='#063887'>Okres kursowania</th><th><font color='#063887'>Wylot</th><th><font color='#063887'>Przylot</th><th><font color='#063887'>Info</th></tr><tr align="center" bgcolor="#FFFFFF">
  2.  
  3. <td><font color='#063887'>1</td>
  4. <td><a class='arial_11s' href="http://www.porty-lotnicze.pl/cms/cms/index.php?action=read&news_id=238" target='_blank'><font color='#063887'>Bolonia</a></td><td><a class='arial_11s' href="http://" target='_blank'><font color='#063887'>Warszawa</a></td><td><a class='arial_11s' href="http://www.centralwings.com/skylights/cgi-bin/skylights.cgi?language=PL&option=dc7a11142f313f75e0c35993513aa771" target='_blank'><font color='#063887'>Centralwings</a></td><td><font color='#063887'>2/4/6</td><td><font color='#063887'>04.12.2006 - 22.03.2007</td><td><font color='#063887'>09:20</td><td><font color='#063887'>11:35</td>
  5. <td><a href='http://www.air-europa.pl/odloty/Centralwings_Warszawa-Bolonia_odlot-0920_okres04122006---22032007.php'><font color='#063887'><font color='#FF0000'>Więcej >>></font></a></td></tr><tr align="center" bgcolor="#FFFFFF">
  6.  
  7. <td><font color='#063887'>2</td>
  8. <td><a class='arial_11s' href="http://www.porty-lotnicze.pl/cms/cms/index.php?action=read&news_id=238" target='_blank'><font color='#063887'>Bolonia</a></td><td><a class='arial_11s' href="http://" target='_blank'><font color='#063887'>Kraków</a></td><td><a class='arial_11s' href="http://www.centralwings.com/skylights/cgi-bin/skylights.cgi?language=PL&option=dc7a11142f313f75e0c35993513aa771" target='_blank'><font color='#063887'>Centralwings</a></td><td><font color='#063887'>2/6</td><td><font color='#063887'>02.12.2006 - 20.03.2007</td><td><font color='#063887'>14:55</td><td><font color='#063887'>16:50</td><td><a href='http://www.air-europa.pl/odloty/Centralwings_Krakow-Bolonia_odlot-1455_okres02122006---20032007.php'><font color='#063887'><font color='#FF0000'>Więcej >>></font></a></td></tr><tr align="center" bgcolor="#FFFFFF">
  9.  
  10. <td><font color='#063887'>3</td>
  11. <td><a class='arial_11s' href="http://www.porty-lotnicze.pl/cms/cms/index.php?action=read&news_id=228" target='_blank'><font color='#063887'>Cork</a></td><td><a class='arial_11s' href="http://" target='_blank'><font color='#063887'>Wrocław</a></td><td><a class='arial_11s' href="http://www.centralwings.com/skylights/cgi-bin/skylights.cgi?language=PL&option=dc7a11142f313f75e0c35993513aa771" target='_blank'><font color='#063887'>Centralwings</a></td><td><font color='#063887'>2/4</td><td><font color='#063887'>31.10.2006 - 06.02.2007</td><td><font color='#063887'>07:05</td><td><font color='#063887'>09:20</td><td><a href='http://www.air-europa.pl/odloty/Centralwings_Wroclaw-Cork_odlot-0705_okres31102006---06022007.php'><font color='#063887'><font color='#FF0000'>Więcej >>></font></a></td></tr><tr align="center" bgcolor="#FFFFFF">
  12.  
  13. <td><font color='#063887'>4</td>
  14. <td><a class='arial_11s' href="http://www.porty-lotnicze.pl/cms/cms/index.php?action=read&news_id=228" target='_blank'><font color='#063887'>Cork</a></td><td><a class='arial_11s' href="http://" target='_blank'><font color='#063887'>Kraków</a></td><td><a class='arial_11s' href="http://www.centralwings.com/skylights/cgi-bin/skylights.cgi?language=PL&option=dc7a11142f313f75e0c35993513aa771" target='_blank'><font color='#063887'>Centralwings</a></td><td><font color='#063887'>2/4</td><td><font color='#063887'>31.10.2006 - 28.11.2006</td><td><font color='#063887'>14:50</td><td><font color='#063887'>17:10</td><td><a href='http://www.air-europa.pl/odloty/Centralwings_Krakow-Cork_odlot-1450_okres31102006---28112006.php'><font color='#063887'><font color='#FF0000'>Więcej >>></font></a></td></tr><tr align="center" bgcolor="#FFFFFF">
  15.  
  16. <td><font color='#063887'>5</td>
  17. <td><a class='arial_11s' href="http://www.porty-lotnicze.pl/cms/cms/index.php?action=read&news_id=228" target='_blank'><font color='#063887'>Cork</a></td><td><a class='arial_11s' href="http://" target='_blank'><font color='#063887'>Warszawa</a></td><td><a class='arial_11s' href="http://www.centralwings.com/skylights/cgi-bin/skylights.cgi?language=PL&option=dc7a11142f313f75e0c35993513aa771" target='_blank'><font color='#063887'>Centralwings</a></td><td><font color='#063887'>4/6</td><td><font color='#063887'>29.03.2007 - 28.04.2007</td><td><font color='#063887'>06:55</td><td><font color='#063887'>09:15</td><td>
drPayton
No i co? Nie widzisz na czym problem polega? Mają "spsuty" kod. Zaczynają <font> a nie kończą go. Czyli po prostu musisz w regexpie dać odpowiednią poprawkę. To co Cię interesuje jest pomiędzy <font a </a>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.