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

> Спарсить
PHP Useless  
 ۩  Дата
Цитировать сообщение

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



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 20
Пользователь №: 42471
На форуме: 10 месяцев, 3 дня
Карма:




Как спарсить значение каждого тд в отдельную переменную?
<td>Vasya </td>
<td>Pupkin </td>
<td>1</td>
<td>15</td>
<td>7</td>
<td>305487</td>
<td>007 </td>
<td>A</td>
<td>M</td>
<td>Q</td>
<td>R</td>
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
igolka97  
Дата
Цитировать сообщение

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



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 21
Пользователь №: 40953
На форуме: 1 год, 9 месяцев, 10 дней
Карма:




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

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




******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 11783
Пользователь №: 23195
На форуме: 6 лет, 4 месяца, 10 дней
Карма: 429

Трезвый :
7 лет, 3 месяца, 10 дней




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

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



Чтобы все !
******

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




А регулярки уже не комильфо?

igolka97
зы: хотел посмотреть как с помощью эксплода это сделать )
PMПисьмо на e-mail пользователюICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
FatCat  
[x] Дата
Цитировать сообщение

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



Чеширский кот
******

Профиль
Журнал
Группа: Администратор
Почтальон группы
Сообщений: 5903
Пользователь №: 1
На форуме: 10 лет, 9 месяцев, 25 дней
Карма: 125

Не пью :
22 года, 2 месяца, 27 дней


Цитата (walerus @ 18.11.2016 - 14:53)
хотел посмотреть как с помощью эксплода это сделать

Как-то так
$txt = '<td>Vasya </td>
<td>Pupkin </td>
<td>1</td>
<td>15</td>
<td>7</td>
<td>305487</td>
<td>007 </td>
<td>A</td>
<td>M</td>
<td>Q</td>
<td>R</td>'
;
$output = array();
$txt = explode('<td>', $txt);
foreach($txt as $v)
if(stristr($v, '</td>'))
$output[] = substr($v, 0, strpos($v, '</td>'));


Или так.
$txt = '<td>Vasya </td>
<td>Pupkin </td>
<td>1</td>
<td>15</td>
<td>7</td>
<td>305487</td>
<td>007 </td>
<td>A</td>
<td>M</td>
<td>Q</td>
<td>R</td>'
;
$output = array();
$txt = explode('<td>', $txt);
foreach($txt as $v)
{
$v = explode('</td>', $v);
if($v[0])
$output[] = $v[0];
}


Это сообщение отредактировал FatCat - 18.11.2016 - 16:44


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

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



Чтобы все !
******

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




FatCat
Спасибо, эти способы я знал, думал может как то "изящнее" есть способы при помощи експлода :D , много "лишних" действий получается, если конечно задача стоит использовать только explode, то да, нормально... Но регуляркой по моему веселее.
$output = preg_match_all( '~<td>(.*)</td>~', $txt, $match );
$match = $match[1];


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

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



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

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1042
Пользователь №: 41686
На форуме: 1 год, 3 месяца, 25 дней
Карма: 13




Цитата (walerus @ 19.11.2016 - 02:45)
$output = preg_match_all( '~<td>(.*)</td>~', $txt, $match );

<td>qwerty</td><td>foo</td><td>
baz
</td>


Самое главное ни explode ни regexp не годятся если на странице 2+ таблицы, при этом целевая только одна.


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

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



Чеширский кот
******

Профиль
Журнал
Группа: Администратор
Почтальон группы
Сообщений: 5903
Пользователь №: 1
На форуме: 10 лет, 9 месяцев, 25 дней
Карма: 125

Не пью :
22 года, 2 месяца, 27 дней


Цитата (walerus @ 19.11.2016 - 01:45)
регуляркой по моему веселее

Регулярки более нагрузочные.


Цитата (Ron @ 19.11.2016 - 02:28)
не годятся если на странице 2+ таблицы, при этом целевая только одна

Сначала регуляркой или эксплодом, или строковыми функциями - выделить нужную таблицу, потом обрабатывать дальше.
А что, обязательно весь код загнать в одну строку?


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

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



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

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1042
Пользователь №: 41686
На форуме: 1 год, 3 месяца, 25 дней
Карма: 13




Цитата (FatCat @ 19.11.2016 - 20:11)
Сначала регуляркой или эксплодом, или строковыми функциями - выделить нужную таблицу, потом обрабатывать дальше.
А что, обязательно весь код загнать в одну строку?

Просто использование способов, отличных от парсинга через DOMDocument (в сложных случаях в связке с xPath), мы в разы повышаем чувствительность к форматированию/изменению исходного HTML документа. Что и было продемонстрировано в моем предыдущем посте.



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

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



Чтобы все !
******

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




Ron
Можно добавить модификаторы в таком случае
$output = preg_match_all( '~<td>(.*)</td>~iUs', $txt, $match );
$match = $match[1];
понятно, что нужно будет "чистить" массив от переводов строк, но не ужели что бы спарсить какие то данные, лучше подключать - DOMDocument, в котором тоже нужно будет "чистить" массив от переводов строк ?
На самом деле, для каждого "парсинга" нужен свой подход...
PMПисьмо на e-mail пользователюICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

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

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