• DONATE to NULLED!
    Форуму и его команде можно помочь, мотивировать модераторов разделов.
    Помогите модератору этого раздела killoff лично.

Помощь [help]Parce.class.php

Статус
В этой теме нельзя размещать новые ответы.

LPKIR

Постоялец
Регистрация
8 Апр 2008
Сообщения
62
Реакции
24
Помогите пожалуйста. Нужно сделать замену кода:
[тег]ИНФА[/тег] на <a href="ссылка?ИНФА">ИНФА[ИНФА2] <img src="картинка?ИНФА3"></a>

Переменную ИНФА нужно пропустить через обработчик, для получения ИНФА2 и ИНФА3
 
а что за обработчик ?

а парсить надо по аналогии с оригинальным тегом url

PHP:
$source = preg_replace( "#\[url\s*=\s*(\S.+?)\s*\](.*?)\[\/url\]#ie"                       , "\$this->build_YOUR_TAG('\\1')", $source );

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

Добавлено через 8 минут
нет, не получается. Нужно обработать через:
PHP:
$xml = file_get_contents('http://www.timezero.ru/cgi-bin/info.pl?'.$nick.''); 
$xml = '<?xml version="1.0" encoding="UTF-8"?>'.$xml;
$xmldoc = new DOMDocument();
$xmldoc->loadXML($xml);
$usercol = $xmldoc->getElementsByTagName('USER');
$user = $usercol->item(0);
		
$lvl=$user->attributes->getNamedItem('level')->nodeValue;
$prof=$user->attributes->getNamedItem('pro')->nodeValue;

[teg]Nick[/tag] - обработать ник и получить level, pro

Добавлено через 14 минут
Вывести в виде: НИК [лвл] профа
 
PHP:
$source = preg_replace( "#\[lvlp\s*=\s*(\S.+?)\s*\](.*?)\[\/lvlp\]#ie", "\$this->build_lvlp('\\1')", $source );

PHP:
function build_lvlp ( $nick ) {
	$xml = file_get_contents('http://www.timezero.ru/cgi-bin/info.pl?'.$nick.'');  
	$xml = '<?xml version="1.0" encoding="UTF-8"?>'.$xml; 
	$xmldoc = new DOMDocument(); 
	$xmldoc->loadXML($xml); 
	$usercol = $xmldoc->getElementsByTagName('USER'); 
	$user = $usercol->item(0); 
         
	$lvl=$user->attributes->getNamedItem('level')->nodeValue; 
	$prof=$user->attributes->getNamedItem('pro')->nodeValue;
	return "<a href=\"http://www.timezero.ru/cgi-bin/info.pl?".$nick."\">".$nick." [".$lvl."] <img src=\"URL?".$prof."\"></a>";
	}
 
Ошибку выдаёт. Какой тут синтаксис использовать тега?
Cannot redeclare build_lvlp()

Добавлено через 2 минуты
Перепиши пожалуйста как [tz]НИК[/tz]
 
Помогите пожалуйста. Очень срочно
 
Всё, кое-как разобрался. Теперь проблема в другом: выдаёт ошибку, типа это уже делалось
Fatal error: Cannot redeclare build_tz() (previously declared in ~\www\engine\classes\parse.class.php:332) in ~\www\engine\classes\parse.class.php on line 332
 
Всё, разобрался. опять же моя невнимательность. gentoouser, спасибо
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху