За последние 24 часа нас посетили 18984 программиста и 1617 роботов. Сейчас ищут 992 программиста ...

Взять url'ы

Тема в разделе "PHP для новичков", создана пользователем allowance, 15 янв 2011.

  1. allowance

    allowance Активный пользователь

    С нами с:
    19 янв 2010
    Сообщения:
    196
    Симпатии:
    0
    Eсть ссылки в html переменной:
    HTML:
    1. <a href="/test/shop/7648983654"><img src="...
    2. <a href="/test/shop/7648983654">text...</a>
    3. <a href="/test/shop/7648983655"><img src="...
    4. <a href="/test/shop/7648983655">text...</a>
    Пробую вытащить их таким регулярным выражением:
    PHP:
    1. [preg_match_all("/\/test\/shop\/(.*)<img/", $out, $get_href);
    2.  
    3. echo $get_href[1][0];
    4. echo '<br>';
    5. echo $get_href[1][1];
    6. echo '<br>';
    Выводит:
    7648983654">
    7648983655">
    7648983654">
    7648983655">

    1. Как сделать так чтобы вытаскивалось без "> ?
    2. как вывести только
    7648983654">
    7648983655"> ?
     
  2. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Код (Text):
    1. trim("7648983655", '">');
     
  3. VItalijs

    VItalijs Активный пользователь

    С нами с:
    17 дек 2008
    Сообщения:
    244
    Симпатии:
    0
    Адрес:
    Рига, Латвия
    PHP:
    1. <?php preg_match_all("/\/test\/shop\/([^\"]*)<img/", $out, $get_href); ?>
     
  4. Johnatan

    Johnatan Активный пользователь

    С нами с:
    6 мар 2008
    Сообщения:
    508
    Симпатии:
    0
    Адрес:
    Испания
    Я, возможно, покажусь банальным, но

    Код (Text):
    1. preg_match_all("#(?<=\/test\/shop\/)\d+#i", $out, $get_href);
     
  5. allowance

    allowance Активный пользователь

    С нами с:
    19 янв 2010
    Сообщения:
    196
    Симпатии:
    0
    Johnatan
    Хороший вариант, только элементов массива - 4
    Array ( [0] => Array ( [0] => 7648983654 [1] => 7648983654 [2] => 7648983655 [3] => 7648983655 ) )

    В этом случае - 2
    PHP:
    1. preg_match_all("/\/test\/shop\/.*<img/", $out, $get_href);
    Array ( [0] => Array ( [0] => /test/shop/7648983654"> /test/shop/7648983655">
     
  6. Johnatan

    Johnatan Активный пользователь

    С нами с:
    6 мар 2008
    Сообщения:
    508
    Симпатии:
    0
    Адрес:
    Испания
    Код (Text):
    1. $get_href = array_unique($get_href);
    или

    Код (Text):
    1. preg_match_all("#(?<=\/test\/shop\/)\d+(?=\"><img)#i", $out, $get_href);
     
  7. allowance

    allowance Активный пользователь

    С нами с:
    19 янв 2010
    Сообщения:
    196
    Симпатии:
    0
    Johnatan
    Спасибо!