Комментарии

Устранение ошибки с помощью функции strip_tags ()
( 0 Голосов )

На первый взгляд страница выглядит именно так, как нам требуется: первая часть каждой статьи отображается под ее заголовком, после чего следует многоточие, указывающее на продолжение статьи. Но если присмотреться к данной странице внимательнее, то можно обнаружить ошибку. Третьей по списку должна следовать статья Getting Started (Начало работы), но она отображается под статьей Getting Help (Получение справки). Что же произошло?

Для того чтобы ответить на этот вопрос, проанализируем текст статьи Getting Help. Если вернуться к выводу содержимого переменной $item с помощью функции var_ dump () и посмотреть содержимое поля introtext для статьи Getting Help, то в нем обнаружится длинный дескриптор img.

Выбрав первые 50 символов из поля вводного текста introtext, мы, как оказалось, получили лишь первую часть дескриптора img, включая и первую часть атрибута src. Таким образом, текст статьи Getting Started с разметкой HTML был неверно вставлен в дескрипторе img. А поскольку нам неизвестно, какие именно дескрипторы HTML могут присутствовать в статье и насколько длинными они могут оказаться, то и возникает упомянутая выше ошибка. Правда, исправить ее нетрудно. Для этого достаточно исключить разметку HTML из текста статьи, воспользовавшись функцией strip tags () языка РНР. В итоге все дескрипторы HTML удаляются из текста, а следовательно, не нужно беспокоиться о прерывании символьной строки посредине элемента разметки HTML. Соответствующие коррективы, внесенные в код, выделены ниже полужирным.

Начинающим осваивать программирование строка, выделенная полужирным в приведенном выше фрагменте кода, может показаться не совсем понятной, поскольку в ней результат выполнения одной функции помещается в вызове другой функции (в данном случае — substr ()). На самом же деле это означает, что код РНР получает команду сначала исключить дескрипторы из вводного текста в поле $item->introtext, а затем передать полученный результат функции substr (), которая извлекает из него первые 50 символов и добавляет к ним многоточие, а конечный результат передается браузеру по команде echo.

Обратите внимание на то, что предварительно просматриваемый текст статьи размещается в элементе разметки р. И делается это потому, что в поле introtext отсутствует какая-либо разметка HTML. Благодаря размещению текста в элементе разметки р гарантируется, что он достоверно размечен и отформатирован как абзац HTML-документа.

Таким образом, ошибка при отображении статьи Getting Started на странице исправлена. Теперь все пять статьей правильно отображаются на странице с 50 символами их начального текста. Тем не менее на этой странице остается не устраненным еще один мелкий недостаток. Обратите внимание на то, что некоторые слова обрываются посредине. Правильнее было бы отображать предварительно просматриваемый текст статей, не нарушая естественные границы слов.


Понравился материал? Пригодилась информация? Плюсани в социалки!


 
Похожие новости