Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [pcre] wyciągnięcie adresu z tekstu
em1X
post
Post #1





Grupa: Zarejestrowani
Postów: 984
Pomógł: 41
Dołączył: 16.03.2002
Skąd: Płock

Ostrzeżenie: (0%)
-----


witam!

męczę się z wyrażeniami regularnymi, ale nie umiem ich na tyle, żeby potrafić opisać rozwiązanie problemu w kodzie regex
może ktoś pomoże smile.gif

mianowicie muszę wyciągnąć adres z kodu html, jednak także z takiego brzydkiego, czyli:
<a href="/search.php">
<img src='/site_logo.gif' alt=costam>
<a href=/welcome title=brzydki_html>
<a href=strona.php title=brzydki_html>
<img src='zdjecie.jpeg' alt=costam>

rozwiązaniem byłoby dopasowanie
1) początkiem musi być znak =
2) następnie będą lub nie znaki " lub '
3) dopasuj do końca aż znajdziesz " lub ' lub spację

potrafi ktoś pomóc ? sad.gif

Ten post edytował em1X 1.10.2007, 18:52:59


--------------------
eh, co polska wódka to polska wódka
Go to the top of the page
+Quote Post
webdice
post
Post #2


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Poczytaj o DOM" title="Zobacz w manualu PHP" target="_manual.
Go to the top of the page
+Quote Post
scrat
post
Post #3





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 22.07.2007

Ostrzeżenie: (0%)
-----


spróbuj tego ale nie jestem pewien czy to jest dobre smile.gif
  1. <?php
  2. preg_match('/.*=["']?(.*)b["' ]{1}.*/i', '<a href="/search.php">', $match);
  3. print_r($match);
  4. ?>
Go to the top of the page
+Quote Post
em1X
post
Post #4





Grupa: Zarejestrowani
Postów: 984
Pomógł: 41
Dołączył: 16.03.2002
Skąd: Płock

Ostrzeżenie: (0%)
-----


w moim przypadku jest to streaming i DOM odpada.
trochę ulepszyłem Twój kod i wydaje się działać porządnie:

  1. <?php
  2. $array = array(
  3. '<a href="img_foto.jpg" alt="10" />',
  4. '<a href="/portal_foto_long.jpeg"/>',
  5. "<img src='pics.gif'>",
  6. "<img src=userbar.php>",
  7. '<link rel="stylesheet" href=http://img.otomoto.pl/images/static_01.png/>'
  8. );
  9.  
  10. print "<pre>";
  11. foreach ($array as $html) {
  12. preg_match('/(src|href|action)=["']?(.*?)b(["' >]|/>){1}/i', $html, $match);
  13. print_r(htmlspecialchars($match[2])."r\n");
  14. }
  15. ?>


dzieki za odpowiedz guitar.gif


--------------------
eh, co polska wódka to polska wódka
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 13:53