mischa.samolkaev
Продвинутый
Дата регистрации:
12.07.2012 13:00:02
Сообщений: 74
Admin
Администратор
Дата регистрации:
27.05.2010 21:23:42
Сообщений: 3063
Ничего не понял, причём тут dom и bb-коды?
mischa.samolkaev
Продвинутый
Дата регистрации:
12.07.2012 13:00:02
Сообщений: 74
Если bb коды уже в отформатированом виде лежат в бд, или обробатываются на сервере то в вышеприведенном коде ошибка обработки, если парсинг bb кода происходит на стороне клиента, то это проблема моего js (android), но вышеприведенный код в браузере opera android смотрится плохо.
Admin
Администратор
Дата регистрации:
27.05.2010 21:23:42
Сообщений: 3063
В статьях никакого bb-кода вообще нет. Всё это делает JavaScript.
mischa.samolkaev
Продвинутый
Дата регистрации:
12.07.2012 13:00:02
Сообщений: 74
Ну тогда ошибка не существенная, на андроиде некоторые коды отображаются неправильно
mischa.samolkaev
Продвинутый
Дата регистрации:
12.07.2012 13:00:02
Сообщений: 74
Я зашел на эту тему с ПК и увидел что в отображении блока исходного кода ошибка
![Изображение](https://myrusakov.ru/images/forum/5cb8ac3b1feb2.jpeg)
, я проверил код на работоспособность, если я не ошибаюсь тут что то не так с регулярными выражениями, в php или js, он воспринимает знак '?>' как конец кода php, даже если он встречает его в строке, допустим при генерации xml в php (строчка '<?xml version="1.0" encoding="utf-8"?>'), это не критическая ошибка, но если бы после выше упомянутого определения начала xml в php (допустим через $domObject->load_xml()) будет идти какой нибудь громоздкий трудный пониманию код (какие нибудь рекурсии, замыкание, всякие тонкости ооп), то отсутствие синтаксиса будет очень мешать
Вот примерчик:
<?php
$dom = new domDocument("1.0", "utf-8"
;
$xml = "<?xml version='1.0' encoding='utf-8'?>";
class MyClass
{
public $prop1 = "Свойство класса ";
public function __construct()
{
echo 'Создан объект класса "', __CLASS__, '"!<br />';
}
public function __destruct()
{
echo 'Объект классса "', __CLASS__, '" удален.<br />';
}
public function __toString()
{
echo "Используем метод toString: ";
return $this->getProperty();
}
public function setProperty($newval)
{
$this->prop1 = $newval;
}
public function getProperty()
{
return $this->prop1 . "<br />";
}
}
class MyOtherClass extends MyClass
{
public function __construct()
{
parent::__construct(); // Вызываем конструктор родительского класса
echo "Новый конструктор в классе " . __CLASS__ . ".<br />";
}
public function newMethod()
{
return"Из нового метода класса " . __CLASS__ . ".<br />";
}
$newobj = new MyOtherClass;
}//код не относится к теме но он как бы очень сложный
$dom->loadXML($xml.'<fdump file=\''.__FILE__.'
'>'.'<set>'.$newobj->newMethod.'</set><set>какой то дамп</set><fdump>');
?>
Этот код - пример, как может быть трудно (кому то) без синтаксиса понять что выше написано, по моему мнению дело в регулярных выражениях, которые при виде группы литералов (?>
![](/images/smiles/sm3.png)
прекращают подсветку синтаксиса, я бы решил так, (^\'?>
![](/images/smiles/sm3.png)
ну или как там отрицание.
Если вам нетрудно исправьте эту ошибку, ведь в дальнейшем, когда вы напишете статьи про всё что должен знать веб мастер, вы наверное станете освещать различные тонкости языков, или писать сложные скрипты, тогда такая мелочь может и навредить
Admin
Администратор
Дата регистрации:
27.05.2010 21:23:42
Сообщений: 3063
Да, всё правильно пишите. Но вот ссылка на данный скрипт: http://myrusakov.ru/js/prettify.js
Скрипт этот от Google вроде даже, да только и он не без проблем. А создавать свою собственную подсветку не хочется, уж больно много красить придётся с целой армией регулярных выражений. Когда буду делать редизайн, постараюсь найти другой скрипт.