Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Не могу составить регулярное выражение, не стандартный пример

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
kismedia
Отправлено: 10 Февраля, 2016 - 15:05:43
Post Id



Новичок


Покинул форум
Сообщений всего: 34
Дата рег-ции: Июль 2010  
Откуда: Нижний Новгород


Помог: 0 раз(а)




Добрый день!
Уже ломаю голову несколько часов.

Суть условия:
В строке данных встречаются следующие конструкции
available="false">..произвольный текст, пробелы, вообщем все что угодно Улыбка <vendor>LEDO</vendor>

Необходимо изменить атрибут available="false" на available="true"
но только при условии окончания на <vendor>LEDO</vendor>

Собственно часть содержимого для более наглядного представления:
CODE (htmlphp):
скопировать код в буфер обмена
  1. <offer id="1278" type="vendor.model" available="false">
  2. <url>
  3. http://ledosveshenie.ru/catalog/ofisnoe-svetodiodnoe-osveshchenie/svetodiodnyy-svetilnik-ledo-001-24-2600/?offer_id=1278&utm_source=market.yandex.ru&utm_term=1278
  4. </url>
  5. <price>1538</price>
  6. <currencyId>RUB</currencyId>
  7. <categoryId>70</categoryId>
  8. <picture>
  9. http://ledosveshenie.ru/upload/iblock/ceb/svetodiodnyy_svetilnik_ledo_001_24_2600.jpg
  10. </picture>
  11. <typePrefix>Светильник светодиодный</typePrefix>
  12. <vendor>LEDO</vendor>


Спасибо, если кто поможет.


-----
Белый, полностью индексируемый в Яндекс Каталог сайтов Инфо-Рунет http://info-runet[dot]ru/ .
 
 Top
Мелкий Супермодератор
Отправлено: 10 Февраля, 2016 - 15:15:21
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Это же XML, при чёт тут регулярки?


-----
PostgreSQL DBA
 
 Top
kismedia
Отправлено: 10 Февраля, 2016 - 15:37:21
Post Id



Новичок


Покинул форум
Сообщений всего: 34
Дата рег-ции: Июль 2010  
Откуда: Нижний Новгород


Помог: 0 раз(а)




Мелкий пишет:
Это же XML, при чёт тут регулярки?


Да, но я обрабатываю этот файл регулярками, другого способа не знаю.
Допустим
PHP:
скопировать код в буфер обмена
  1. $file = fopen('yandex_market.php', 'r');
  2. $text = fread($file, filesize('yandex_market.php'));
  3. $text = preg_replace("'<description[^>]*?>.*?</description>'si","",$text);


В примере как бы убрал тег <description>, все норм. И залил опять в в файл.

Подскажите, если я не прав, не силен в PHP.
Как осуществить правильно выше упомянутую задачу замены.

То есть мне нужно выставить атрибут available="true" на весь товар с производителем LEDO

Сам yandex_market.php' формируется Битриксом, покопался в коде, но это не мой уровень, не разберусь.

Поэтому просто решил запускать доп. обработчик на РHP.
Открывать, делать замены и записывать опять в файл.
Как то так.

(Отредактировано автором: 10 Февраля, 2016 - 15:44:49)



-----
Белый, полностью индексируемый в Яндекс Каталог сайтов Инфо-Рунет http://info-runet[dot]ru/ .
 
 Top
Мелкий Супермодератор
Отправлено: 10 Февраля, 2016 - 16:07:51
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Ещё раз - это XML. Не надо извращаться, надо его и читать как XML.
Для обработки XML, наверное, в любом языке есть штатные средства. А то, как в случае с PHP, и не одно средство.

Проще всего использовать simplexml. Прочитали файлик, изменили где нужно атрибуты, записали файлик.


-----
PostgreSQL DBA
 
 Top
kismedia
Отправлено: 10 Февраля, 2016 - 16:26:05
Post Id



Новичок


Покинул форум
Сообщений всего: 34
Дата рег-ции: Июль 2010  
Откуда: Нижний Новгород


Помог: 0 раз(а)




Мелкий пишет:
Ещё раз - это XML. Не надо извращаться, надо его и читать как XML.
Для обработки XML, наверное, в любом языке есть штатные средства. А то, как в случае с PHP, и не одно средство.

Проще всего использовать simplexml. Прочитали файлик, изменили где нужно атрибуты, записали файлик.


Спасибо, но регуляпку все равно же придется строить?
Мне же не просто убрать тег или изменить, а изменить при условии что....


-----
Белый, полностью индексируемый в Яндекс Каталог сайтов Инфо-Рунет http://info-runet[dot]ru/ .
 
 Top
Мелкий Супермодератор
Отправлено: 10 Февраля, 2016 - 17:12:01
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Нет, не придётся. PHP отлично умеет выполнять if.


-----
PostgreSQL DBA
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Регулярные выражения »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB