- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
В 2023 году Google заблокировал более 170 млн фальшивых отзывов на Картах
Это на 45% больше, чем в 2022 году
Оксана Мамчуева
Как снизить ДРР до 4,38% и повысить продажи с помощью VK Рекламы
Для интернет-магазина инженерных систем
Мария Лосева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Есть строки в файле вида:
я ее выдираю выражением
preg_match_all('/<span class="ec_b_11" dir="ltr">(.*)<\/span>/isU',$str,$array)
все отлично. Проблема вот в чем, такая строка бывает встречается 2 раза, а парсить ее надо как одну, например
, т.е. на выходе должно получится "PPI Input (WoW)";Нужно чтобы как-то соединяло две строки с одинаковыми тегами, которые идут подряд, и нужно чтобы работал и первый и второй вариант.
надо убрать модификатор "U"
Если его убрать, тогда будет искатся все от первого открывающего и до последнего закрывающего, а таких выражений много в тексте, без U никак не получается. я попробовая сделать так:
/<span class="ec_b_11" dir="ltr">(.*)<\/span>[<span class="ec_b_11" dir="ltr">(.*)<\/span>]?/isU
т.е. условие, что второй спан может быть, а может и не быть. Но проблема в том, что он все равно когда идут подряд спаны, он ищет по первой части выражения и находит его. Если же убрать это условие, тогда ищется только два спана подрят, а мне надо чтоб искало и один, а когда два спана, обьединяло их в одну строчку
Собссна в результате работы функции получаем:
echo $array[1][0].$array[1][1];
правильнее будет:
echo implode(' ', $array[1]);
echo $array[1][0].$array[1][1];
Я хотел так сделать, но не получается, потому что я не знаю когда будет 2 span подряд, а когда один.
вот конкретный пример
Т.е на выходе должно быть
Текст 1
Текст 2 Дополнение к тексту 2
Текст 3
Текст 4 Дополнение к тексту 4
ну а в результате работы моего кода
выводит
Текст 1
Текст 2
Дополнение к тексту 2
Текст 3
Текст 4
Дополнение к тексту 4
PS: извините если туплю в чем-то, но понять не могу никак
И что не нравится?
И что не нравится?
я парсю таблицу, и нужно чтобы совпадало количество напарсеных в пред. столбце, и в этом в котором спаны. просто в некоторых ячейках этого столбца текст разбит на несколько спанов а в некоторых на один
и не нравится еще то что я незнаю когда будет два спана а когда один, чтобы обьединить нужные..
Так объединяйте всегда :) А если все же нужно для чего-то знать сколько найдено вхождений - проверяйте количество элементов соответствующего массива.
А если задача такая: спаны, которые идут подряд - считаем за один текст, а которые чем-то разделяются - за разные тексты, то тогда придется немного изменить код.
SeoProger добавил 10.10.2010 в 13:33
Кстати, если парсится таблица, то может имеет смысл парсить по ячейкам таблицы, а не по спанам?
Т.е на выходе должно быть
ну а в результате работы моего кода
выводит
PS: извините если туплю в чем-то, но понять не могу никак
И что не нравится?
Тексты совпадают. (ну кроме форматирования)
А если задача такая: спаны, которые идут подряд - считаем за один текст, а которые чем-то разделяются - за разные тексты, то тогда придется немного изменить код.
Да, задача именно такая.
SeoProger добавил 10.10.2010 в 13:33
Кстати, если парсится таблица, то может имеет смысл парсить по ячейкам таблицы, а не по спанам?
Там таблица в таблице, и не вся таблица парсится, в общем проще по спанам именно это поле распарсить.
И что не нравится?
вот в этой строчке не нравится
т.к. парсится таблица, то данные из разных столбцов должны соответствовать индексу массива,
пример есть поля $ar[$i][name], $ar[$i][date] и индекс у них должен быть такой же как и у $ar[$i][title] (то что я выдираю из спанов) а, тк. спанов больше чем строк в таблице все данные сбиваются