Нужно ли. Валидность и &.
115 повідомлень
#15 років тому
Я верстальщик, задача добавится валидности.90% ошибок из-за & в ссылках...Поидее это ведь не проблемы верстальщика...что двиг выдает неправильные ссылки?
115 повідомлень
#15 років тому
ob_start();
//Content....
echo preg_replace('/&(?!amp;|quot;|nbsp;|gt;|lt;|laquo;|raquo;|copy;|reg;|bul;|rsquo;)/', '&', ob_get_clean());
- Минус 120 ошибок и предупреждений валидатора

248 повідомлень
#15 років тому
preg_replace('/&(?!(?:#\d++|++);)/ui', '&', $url);
Вот такую штуку использую, выдрал из Коханы 2.3.4
1172 повідомлення
#15 років тому
Цитата ("trueW3C"):- Минус 120 ошибок и предупреждений валидатора
Плюс 120% используемой оперативки и нагрузки процессора.
Цитата ("trueW3C"):
Поидее это ведь не проблемы верстальщика...что двиг выдает неправильные ссылки?
Это проблемы невалидных кодеров.
115 повідомлень
#15 років тому
Цитата ("_VersouL_"):А какой движок делает таким код?
WP и куча примочек к нему...я не разбирался...тут скорей примочки виноваты.
Цитата ("Lisio"):
Плюс 120% используемой оперативки и нагрузки процессора.
Там и так скрипт интерпретируется пол секунды...это сильно не навредит

preg_replace('/&(?!(?:#\d++|++);)/ui', '&', $url);
werewolf, спасибо!
570 повідомлень
#15 років тому
Парни, подскажите чайнику, куда этот код вставлять, чтобы валидатор на & не ругался?
115 повідомлень
#15 років тому
В index.php в самом начале, после <?phpob_start();
В самом конце...
echo preg_replace('/&(?!(?:#\d++|++);)/ui', '&', ob_get_clean());
1172 повідомлення
#15 років тому
Vitaflax, но не забывайте про память, если она критична. При высокой нагрузке может иметь побочный эффект.
115 повідомлень
#15 років тому
Lisio, я когда сайты пишу использую инструменты Yii для ссылок...нечто вроде такого...<a href="<?php echo $this->createUrl('posts/view', array('id' => 10)); ?>">Подробней</a>
И таких проблем не возникает...
Причем в Yii я легко могу менять вид полученной ссылки не меняя код...
10571 повідомлення
#15 років тому
werewolf, Интересно, а как сделать так, чтоб вообще валидатор не проверял ничего 
У Артемия вроде видела что-то при проверке написано было, вместо проверки
248 повідомлень
#15 років тому
AlexsimA, указывайте
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
(если не используются устаревшие теги <font> <b>, etc)
или
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
перед <html>.
Он перестанет ругаться на &, <br> и незакрытые одиночные теги.
10571 повідомлення
#15 років тому
werewolf, А если на сайте такое написано -Joomla<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
105 повідомлень
#15 років тому
Код, генерируемый кучей модулей Joomla от разных авторов, будет трудно привести к валидному XHTML 1.0 TransitionalИ вообще к чему-то валидному)
10571 повідомлення
#15 років тому
2frags, Вот -вот и я про то-поэтому закрыла на это глаза.Мне самое главное, чтоб все хорошо работала и было одинаково во всех браузерах.
138 повідомлень
#15 років тому
Насколько я понял гугл и яндекс тоже невалинды 
3240 повідомлень
#15 років тому
Цитата ("trueW3C"):ob_start();
//Content....
echo preg_replace('/&(?!amp;|quot;|nbsp;|gt;|lt;|laquo;|raquo;|copy;|reg;|bul;|rsquo;)/', '&', ob_get_clean());
- Минус 120 ошибок и предупреждений валидатора
Так нельзя делать категорически.
Так как & " и остальные специальные элементы, которые в Вашем коде перечислены, представляют собой далеко не полный список того, что может быть.
А если, например, встретится € во что Ваш код его превратит?
Пожалуйста смотрите спеку, что еще возможно: посилання
Даже не учитывая, что в XML можно свои энтити создавать... (хотя если Вы только лишь HTML выводите, и никакого X*, то это не критично).
Но в любом случае, такое решение, даже если перечислите все-все варианты согласно спецификации HTML, весьма и весьма неэффективно.
Вместо этого используйте специальное преобразование для ссылок, если они встречаются, и только для них, а не для всего выводимого пользователю текста.