Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wyrażenia regularne - wyciągnięcie samego adresu http://
Forum PHP.pl > Forum > PHP
Northulus
Witam,

Mam problem z wyciągnięciem adresu http://przyklad.pl z ciągu znaków.

Mam przykładowy, następujący ciąg znaków:
a:3:{i:0;a:2:{i:0;s:107:"<a title="projektowanie" href="http://www.przyklad.pl/">projektowanie</a>";i:1;s:103:"<a title="przyklad" href="http://www.przyklad.pl/przyklad/">przyklad</a>";}i:1;a:2:{i:0;s:27:"http://www.przyklad.pl/";i:1;s:45:"http://www.przyklad.pl/przyklad/";}i:2;a:2:{i:0;s:28:"przyklad";i:1;s:17:"przyklad";}}

Napisałem wyrażenie, które obcina pierwszą część tego ciągu.

Wyrażenie:
  1. $wyr = '{(http:\/\/[a-z.][^\n\s]*)}';


Ciąg wówczas wygląda tak:
  1. http://www.przyklad.pl/">projektowanie
  2. <a href="http://www.przyklad.pl/przyklad/&quot;&gt;przyklad" target="_blank">http://www.przyklad.pl/przyklad/">przyklad</a>
  3. <a href="http://www.przyklad.pl/&quot;;i:1;s:45:&quot;http://www.przyklad.pl/przyklad/&quot;;}i:2;a:2:{i:0;s:28:&quot;przyklad" target="_blank">http://www.przyklad.pl/";i:1;s:45:&qu...:"przyklad</a>
  4. <a href="http://www.przyklad.pl/&quot;&gt;przyklad" target="_blank">http://www.przyklad.pl/">przyklad</a>
  5. <a href="http://www.przyklad.pl/przyklad/&quot;&gt;przyklad" target="_blank">http://www.przyklad.pl/przyklad/">przyklad</a>
  6. <a href="http://www.przyklad.pl/&quot;;i:1;s:45:&quot;http://www.przyklad.pl/przyklad/&quot;;}i:2;a:2:{i:0;s:28:&quot;przyklad" target="_blank">http://www.przyklad.pl/";i:1;s:45:&qu...:"przyklad</a>


Ogolnie, jak pozbyć się wszystkiego za "/"?

Chodzi mi o pobranie adresu głównego, zatem jak mam:
  1. <a href="http://www.przyklad.pl/przyklad" target="_blank">http://www.przyklad.pl/przyklad</a>


To wystarczy mi http://www.przyklad.pl

Proszę o pomoc. smile.gif
Tajgeer
Nie lepiej skorzystać z unserialize i następnie komórka po komórce wyciągać adres bazowy?
Northulus
Użyłem wcześniej unserialize na tablicy wielowymiarowej aby otrzymać ciąg znaków.
Ten ciąg znaków zapisałem sobie do pliku.
Teraz pomyślałem, żeby z ww. ciągu za pomocą wyrażeń regularnych wyciągnąć adresy.

Jeśli macie jakieś inne pomysły, to proszę o pomoc, gdyż może idę "na okrętkę" smile.gif

Chcę po prostu wyciągnąć adresy.

Tablica wygląda tak:

  1. (
  2. [0] => Array
  3. (
  4. [0] => przyklad
  5. )
  6.  
  7. [1] => Array
  8. (
  9. [0] => <a href="http://przyklad.pl" target="_blank">http://przyklad.pl</a>
  10. )
  11.  
  12. [2] => Array
  13. (
  14. [0] => hosting
  15. )
  16.  
  17. )
  18. (
  19. [0] => Array
  20. (
  21. [0] => przyklad
  22. )
  23.  
  24. [1] => Array
  25. (
  26. [0] => <a href="http://przyklad.pl" target="_blank">http://przyklad.pl</a>
  27. )
  28.  
  29. [2] => Array
  30. (
  31. [0] => przyklad
  32. )
  33.  
  34. )
  35. (
  36. [0] => Array
  37. (
  38. [0] => projektowanie
  39. [1] => przyklad
  40. )
  41.  
  42. [1] => Array
  43. (
  44. [0] => <a href="http://www.przyklad.pl/" target="_blank">http://www.przyklad.pl/</a>
  45. [1] => <a href="http://www.przyklad.pl/przyklad/" target="_blank">http://www.przyklad.pl/przyklad/</a>
  46. )
  47.  
  48. [2] => Array
  49. (
  50. [0] => projektowanie
  51. [1] => przyklad
  52. )
  53.  
  54. )
Krzysztofik
Nie za "/" lecz przed """.

$wyr = '@http:\/\/[^"]*@'
Northulus
Zadanie rozwiązałem sam. Dziękuję za chęci.

Rozwiązanie:
Zauważyłem, że u mnie linki są zawsze na pozycji [X][Y].
Dlatego, odwołałem się w pętli do konkretnie tych elementów.

Następnie pobrane elementy rozbiłem przy pomocy funkcji explode
  1. $adres = explode('/', $adres);


Wówczas, otrzymałem ponownie tablicę, i ponownie zauważyłem, że tym razem, to co chcę, czyli www.adres.pl jest na pozycji [Z].

Pobrałem te adresy w pętli, zapisałem do pliku. smile.gif
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.