Ещё раз - это XML. Не надо извращаться, надо его и читать как XML.
Для обработки XML, наверное, в любом языке есть штатные средства. А то, как в случае с PHP, и не одно средство.
Проще всего использовать simplexml. Прочитали файлик, изменили где нужно атрибуты, записали файлик.
Спасибо, но регуляпку все равно же придется строить?
Мне же не просто убрать тег или изменить, а изменить при условии что....
Суть условия:
В строке данных встречаются следующие конструкции available="false">..произвольный текст, пробелы, вообщем все что угодно <vendor>LEDO</vendor>
Необходимо изменить атрибут available="false" на available="true"
но только при условии окончания на <vendor>LEDO</vendor>
Собственно часть содержимого для более наглядного представления:
Всем привет!
Редко пишу на форум, бывает требуется немного "поковырять" php, справляюсь самостоятельно.
Но с данной задачей справится к сожалению не могу, в регулярных выражениях не силен.
Решений нигде готовых не нашел.
$data='БЛА-БЛА-БЛА....<b>Товары доступные в системе</b> (ЗДЕСЬ ЧИСЛО НЕ ЗНАЕМ КАКОЕ)...БЛА-БЛА-БЛА';
Требуется найти и заключить в теги <h2>...</h2>
Вот эту чать: "<b>Товары доступные в системе</b> (ЗДЕСЬ ЧИСЛО НЕ ЗНАЕМ КАКОЕ)"
То есть от "<b>" и за ")" после числа.
Не смогу сам разобраться, да хотя бы знать в каком направлении решать проблему.
На моем сайте со вчерашнего дня пошла ошибка в работе парсера, до этого все работало.
Сможет ли кто-нибудь подсказать что означает данная ошибка и в чем может быть причина:
[11-Oct-201113:24:02] PHP Warning: SimpleXMLElement::__construct()[<a href='simplexmlelement.--construct'>simplexmlelement.--construct</a>]: Entity: line 4: parser error : Specification mandate value for attribute D4B in /home/kismedia/public_html/info-runet.ru/wp-content/themes/katalog/parser/pr.php on line 169
[11-Oct-201113:24:02] PHP Warning: SimpleXMLElement::__construct()[<a href='simplexmlelement.--construct'>simplexmlelement.--construct</a>]: harset>utf-8</charset><properties><_PassagesType>0</_PassagesType><lang>ru</lang in /home/kismedia/public_html/info-runet.ru/wp-content/themes/katalog/parser/pr.php on line 169
[11-Oct-201113:24:02] PHP Warning: SimpleXMLElement::__construct()[<a href='simplexmlelement.--construct'>simplexmlelement.--construct</a>]: ^ in /home/kismedia/public_html/info-runet.ru/wp-content/themes/katalog/parser/pr.php on line 169
Всем привет!
Сможет ли кто-нибудь помочь довести до ума скрипт аналог сервиса BNAME.RU
Система раздачи счетчиков тИЦ и PR
А именно, корректно изменить функцию получения значения PR.
Вот установленный скрипт: http://cy-pr[dot]info-runet[dot]ru/
Определение показателя PR уже устарело и функция не актуальна.
Вот ее код:
Требуется написать скрипт который выполняет следующие задачи:
1. При запуске анализирует заданный, скажем в переменной $url, сайт на предмет всех внешних ссылок, без ограничений по уровню вложенности, то есть все что есть.
Либо можно давать ему просто уже готовый sitemap.xml и тогда ограничится 1-ым уровнем (так думаю будет быстрее).
2. Теперь по всем этим внешним ссылкам необходимо перейти заданное количество раз и обязательно с заданным в скрипте рефералом (по-сути это текущий сайт со скриптом).
То есть в учете статистики трафика собранных сайтов (внешних ссылок) должен отобразится наш переход.
Вот собственно и все.
Надеюсь, что я правильно объяснил задачу. Думаю, она не очень сложная, но таких готовых, подобных решений я не нашел.
Текущая кодировка сайта UTF-8 а в переменной присутствует символ не поддерживаемый текущей кодировкой, вывести его нельзя, отображается это " � ".
Как я понимаю, искать нужно не " � " в буквальном смысле, это уже как следствие, а символы, код, которые отсутствуют в UTF.
Можно ли срезать через chr() некий диапазон символов, допустим удалить все кроме кода кирилицы? Как то вот так получается, надеюсь, я правильно понимаю сам проблему.
Не знаю как правильно выразиться, но вообщем, есть переменная $content
Содержимое, допустим такое: "выстраиваются в квадрат 5�5"
Вопрос, как убрать вот этот " � " не определенный символ, то есть символы которые не опознаны, не поддерживаются текущей кодировкой, как я понимаю.
Существует ли возможность такой проверки содержимого строки?
Убрать как бы все не валидные символы.
Надеюсь, Вы меня поняли.
Инормации по данному вопросу не нашел, да и собственно, что искать, как описать данную проблему.
Собственно задача, сама по себе звучит просто:
Пропустить содержимое через регулярку, в которой будет удалятся все (символы, цифры) повторяющиеся сколько угодно раз или не встречающиеся вообще, вообщем, любая комбинация, но после заданного слова, ключа.
Допустим все после фразы "Читать далее", желательно даже включая эту фразу.
Что делаем, парсим содержимое тега <TITLE> заданной страницы $urlsape и выводим результат в правильной (соответствующей сайту) кодировке из переменной $titles.
Вот, собственно и задача:
Как дописать, реализовать кэширование переменной $titles учитывая значение $urlsape в некий текстовый файл, допустим построчно, и потом вытягивать это значение по условию наличия и соответственно выводить результат. Тем самым сократив количество постоянных обращений и бессмысленного повторного парсинга сайтов.
Вижу это так:
Переменная $titles в конце имеет некий результат, заголовок страницы сайта с адресом $urlsape
Необходимо организовать хранилище в файле с расширением .txt следующей структуры: $urlsape - $titles
$urlsape - $titles
$urlsape - $titles
.......
Проверяем переменную $urlsape, если ее содержимое уже имеется в файле, скажем Cache.txt, то забираем ее значение $titles, и соответсвенно выводим.
Если такой записи нет, то парсим согласно выше приведенному коду и результат записываем в файл Cache.txt. После чего ее тоже выводим.
Насколько трудоемко дописать данный модуль кеширования и какие функции для этого использовать?
Время жизни кэша не имеет значения, данные не обновляются.
Что делаем, да, собственно, просто парсим содержимое тега <TITLE> по адресу $urlsape. Все как бы работает, проблема только с кодировкой.
Если страница по заданному адресу в "cp1251" , то получаем на выходе "квадратики" (у меня на сайте "utf-8").
Вообщем, как проверить кодировку либо всей страницы , либо содержимого переменной $titles и уже в зависимости от этого сделать выше приведенную операцию?