Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Простая задача выборки ф-й preg_match_all
Xes  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 844
Пользователь №: 27442
На форуме: 5 лет, 7 месяцев, 18 дней
Карма: 7




Ребята давно не практиковался, подскажите пожалуйста.
Нужно вытащить массивом ссылку и анкер ссылки. То что я обозначил (.*)
У меня на выходе массив пустой.

$text=file_get_contents('file1.php');
$pattern = '|<div class="label"><a href="(.*)" onclick="return nav.go(this, event);">(.*)</a></div>|i';
preg_match_all($pattern, $text, $out);
print_r($out);
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Лысый и злой
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 25982
Пользователь №: 21350
На форуме: 6 лет, 8 месяцев, 20 дней
Карма: 725

Не курю:
1 год, 2 месяца, 7 дней


<?php

$str = '<a href="asdasdasdasd" onclick="return nav.go(this, event);">123123123</a>';

$pattern = '#href="([^"].*)".*?>([^<].*)</a>#U';
preg_match_all($pattern, $str, $out);
print_r($out);


Array
(
[0] => Array
(
[0] => href="asdasdasdasd" onclick="return nav.go(this, event);">123123123</a>
)

[1] => Array
(
[0] => asdasdasdasd
)

[2] => Array
(
[0] => 123123123
)

)


--------------------
Халявные ответы кончились.
Если нужен готовый код - готовьтесь заплатить.
Райкин тоже был артист

Возле дома был сарай
А когда всё хорошо
Можно просто покурить

user posted image
http://ufa102.xyz/
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Xes  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 844
Пользователь №: 27442
На форуме: 5 лет, 7 месяцев, 18 дней
Карма: 7




Игорь спасибо, да скрипт выдает данные но из за того что у меня сложный текст много ссылок, на выходе много мусора.
Поэтому я написал шаблон в котором меня интересуют только ссылки внутри блока div определенного класса и в самой ссылке тоже определенные слова типа onclick="return nav.go(this, event);"
Тоесть ето хоть можен не совсем гибкий но однозначно определяющий шаблон, под маю микро задачу достаточно.

Что не так в этом шаблоне?

Вот кусок текста где 4 элемента многомерного масива должно получится, но масив пустой

$text='<div class="label"><a href="111" onclick="return nav.go(this, event);">qqqq</a></div> 
ТУТ ЕЩЕ КУЧА ТЕКСТА С СЫЛКАМИ<div class="label"><a href="2222" onclick="return nav.go(this, event);">
wwwwwww</a></div>
sdlksdjlk <div class="label"><a href="333333" onclick="return nav.go(this, event);">eeeee</a></div>
nnnnnnndkdkkd <div class="label"><a href="333333" onclick="return nav.go(this, event);">eeeee</a></div>'
;

$pattern = '|<div class="label"><a href="(.*)" onclick="return nav.go(this, event);">(.*)</a></div>|iU';
preg_match_all($pattern, $text, $out);
print_r($out);


Array ( [0] => Array ( ) [1] => Array ( ) [2] => Array ( ) [3] => Array ( ) ) 
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Лысый и злой
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 25982
Пользователь №: 21350
На форуме: 6 лет, 8 месяцев, 20 дней
Карма: 725

Не курю:
1 год, 2 месяца, 7 дней


вот я взял твою переменную $text

$str='<div class="label"><a href="111" onclick="return nav.go(this, event);">qqqq</a></div> jsjkdlksdj <div class="label"><a href="2222" onclick="return nav.go(this, event);">
wwwwwww</a></div>
sdlksdjlk <div class="label"><a href="333333" onclick="return nav.go(this, event);">eeeee</a></div>
nnnnnnndkdkkd <div class="label"><a href="333333" onclick="return nav.go(this, event);">eeeee</a></div>'
;

$pattern = '#href="([^"].*)".*?>([^<].*)</a>#U';
preg_match_all($pattern, $str, $out);
print_r($out);


Array
(
[0] => Array
(
[0] => href="111" onclick="return nav.go(this, event);">qqqq</a>
[1] => href="333333" onclick="return nav.go(this, event);">eeeee</a>
[2] => href="333333" onclick="return nav.go(this, event);">eeeee</a>
)

[1] => Array
(
[0] => 111
[1] => 333333
[2] => 333333
)

[2] => Array
(
[0] => qqqq
[1] => eeeee
[2] => eeeee
)

)


не пойму, что не так ?
в 0 индексе мусор - в 1 ссылки в 2 анкера


--------------------
Халявные ответы кончились.
Если нужен готовый код - готовьтесь заплатить.
Райкин тоже был артист

Возле дома был сарай
А когда всё хорошо
Можно просто покурить

user posted image
http://ufa102.xyz/
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Лысый и злой
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 25982
Пользователь №: 21350
На форуме: 6 лет, 8 месяцев, 20 дней
Карма: 725

Не курю:
1 год, 2 месяца, 7 дней


дай исходный текст чтоли. я не правлю чужие паттерны. мне быстрее написать свой)


--------------------
Халявные ответы кончились.
Если нужен готовый код - готовьтесь заплатить.
Райкин тоже был артист

Возле дома был сарай
А когда всё хорошо
Можно просто покурить

user posted image
http://ufa102.xyz/
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Xes  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 844
Пользователь №: 27442
На форуме: 5 лет, 7 месяцев, 18 дней
Карма: 7




Игорь, полностью код.
Во-первых у меня почему-то на выходе два раза href="333333" onclick="return nav.go(this, event);">eeeee
и отсутвует
a href="2222" onclick="return nav.go(this, event);">
wwwwwww
Во-вторых вот в тексте ссылка которая находиться в блоке <div class="musor"><a href="Ссылка мусорная" onclick="return nav.go(this, event);">Анкер Мусорный</a></div> она тоже попадает в выдачу.
Мне нужны данныйе только из блоков соответвующих шаблону

<div class="label"><a href="(.*)" onclick="return nav.go(this, event);">(.*)</a></div>

<?php
error_reporting(E_ALL);
header('Content-type: text/html; charset=utf-8');
echo 'Start';
$str='<div class="label"><a href="111" onclick="return nav.go(this, event);">qqqq</a></div>
jsjkdlksdj <div class="label"><a href="2222" onclick="return nav.go(this, event);">
wwwwwww</a></div>
sdlksdjlk <div class="label"><a href="333333" onclick="return nav.go(this, event);">eeeee</a></div>
nnnnnnndkdkkd <div class="label"><a href="333333" onclick="return nav.go(this, event);">eeeee</a></div>
еще текст <div class="musor"><a href="Ссылка мусорная" onclick="return nav.go(this, event);">Анкер Мусорный</a></div>'
;

$pattern = '#href="([^"].*)".*?>([^<].*)</a>#U';
preg_match_all($pattern, $str, $out);
print_r($out);
?>



StartArray ( [0] => Array ( [0] => href="111" onclick="return nav.go(this, event);">qqqq [1] => href="333333" onclick="return nav.go(this, event);">eeeee [2] => href="333333" onclick="return nav.go(this, event);">eeeee [3] => href="Ссылка мусорная" onclick="return nav.go(this, event);">Анкер Мусорный ) [1] => Array ( [0] => 111 [1] => 333333 [2] => 333333 [3] => Ссылка мусорная ) [2] => Array ( [0] => qqqq [1] => eeeee [2] => eeeee [3] => Анкер Мусорный ) )
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Лысый и злой
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 25982
Пользователь №: 21350
На форуме: 6 лет, 8 месяцев, 20 дней
Карма: 725

Не курю:
1 год, 2 месяца, 7 дней


так чтоли?
<?php

$str='<div class="label"><a href="111" onclick="return nav.go(this, event);">qqqq</a></div> jsjkdlksdj <div class="label"><a href="2222" onclick="return nav.go(this, event);">
wwwwwww</a></div>
sdlksdjlk <div class="label"><a href="333333" onclick="return nav.go(this, event);">eeeee</a></div>
nnnnnnndkdkkd <div class="label"><a href="333333" onclick="return nav.go(this, event);">eeeee</a></div>
nnnnnnndkdkkd <div class="musor"><a href="333333" onclick="return nav.go(this, event);">eeeee</a></div>'
;

$pattern = '#<div class="label"><a href="([^"].*)".*?>([^<].*)</a></div>#U';
preg_match_all($pattern, $str, $out);
print_r($out);


Array
(
[0] => Array
(
[0] => <div class="label"><a href="111" onclick="return nav.go(this, event);">qqqq</a></div>
[1] => <div class="label"><a href="333333" onclick="return nav.go(this, event);">eeeee</a></div>
[2] => <div class="label"><a href="333333" onclick="return nav.go(this, event);">eeeee</a></div>
)

[1] => Array
(
[0] => 111
[1] => 333333
[2] => 333333
)

[2] => Array
(
[0] => qqqq
[1] => eeeee
[2] => eeeee
)

)



--------------------
Халявные ответы кончились.
Если нужен готовый код - готовьтесь заплатить.
Райкин тоже был артист

Возле дома был сарай
А когда всё хорошо
Можно просто покурить

user posted image
http://ufa102.xyz/
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Xes  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 844
Пользователь №: 27442
На форуме: 5 лет, 7 месяцев, 18 дней
Карма: 7




Да спасибо получилось.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Лысый и злой
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 25982
Пользователь №: 21350
На форуме: 6 лет, 8 месяцев, 20 дней
Карма: 725

Не курю:
1 год, 2 месяца, 7 дней


))


--------------------
Халявные ответы кончились.
Если нужен готовый код - готовьтесь заплатить.
Райкин тоже был артист

Возле дома был сарай
А когда всё хорошо
Можно просто покурить

user posted image
http://ufa102.xyz/
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса