powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Шаблонизация в PHP и символы <!--
10 сообщений из 10, страница 1 из 1
Шаблонизация в PHP и символы <!--
    #39161259
Alexsalog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Разбираюсь с неким сайтом, как он работает. Обнаружил конструкции: <!--include_html..
Поскольку в программном коде ничего такого не обнаружил подозреваю что это родная шаблонизация в PHP.
Так ли это ?

Еще определил что на разных хостингах php по разному реагирует на сочетание <!--.
В одном случае требуется пробел, а в другом он наоборот не нужен. Почему ? Где это может настраиваться ?
...
Рейтинг: 0 / 0
Шаблонизация в PHP и символы <!--
    #39161268
Alexsalog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Упс... поискал по другому, нашел некий парсер. Вопрос снимается. Просто сильно тороплюсь.
...
Рейтинг: 0 / 0
Шаблонизация в PHP и символы <!--
    #39161583
Alexsalog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не могу понять почему шаблонизатор работает неправильно на моем хостинге.
Вот участок кода:

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
<?
				$start = strpos($html, '<!--start_'.$name.'-->');
				$end = strpos($html, '<!--end_'.$name.'-->');

				if ($start !== false and $end !== false) {

					$row_base = ltrim(substr(
						$html, 
						($start + strlen("<!--start_$name-->")), 
						($end - $start - strlen("<!--start_$name-->"))
						));
?>



Переменные start и end вычисляются, но при вырезании строки с помощью substr получается совсем не тот участок html который нужен.
Что может влиять на результат ?

html - это текст в utf-8 с переносами строк.

Что интересно на старом хостинге это работает. Но там ограничен доступ к системной информации.
...
Рейтинг: 0 / 0
Шаблонизация в PHP и символы <!--
    #39161590
Фотография r u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexsalogНе могу понять почему шаблонизатор работает неправильно на моем хостинге.
что значит неправильно?
вырезает не то что нужно, вообще не вырезает, вырезает лишнее ... ?
...
Рейтинг: 0 / 0
Шаблонизация в PHP и символы <!--
    #39161742
Alexsalog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
r uAlexsalogНе могу понять почему шаблонизатор работает неправильно на моем хостинге.
что значит неправильно?
вырезает не то что нужно, вообще не вырезает, вырезает лишнее ... ? Я честно говоря в полном... растерянности.

Вот допустим у нас есть переменная:

Код: php
1.
$html = '<html>текст1 текст 2 текст3 <!--start_region-->region_template<!--end_region--> текст4 текст5 текст6  </html>'



Притом замечу реальное содержимое $html - это текст в utf-8 и он содержит переносы строк.

По идее если программа вычислила с помощью функции strpos позицию подстроки <!--start_region-->, то потом результат функции substr должен показывать то, что содержится в $html после <!--start_region-->:

Код: php
1.
2.
3.
$start =  strpos($html, "<!--start_region-->");

echo substr($html,$start,100);



То есть типа: <!--start_region-->region_template<!--end_region--> текст4 текст5 ...

Однако переменная $start почему-то вычисляется бОльшей, чем должна быть в реальности и указывает на текст, расположенный сильно позже искомого образца.

Вопрос - че за фигня ?
...
Рейтинг: 0 / 0
Шаблонизация в PHP и символы <!--
    #39161746
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexsalogПеременные start и end вычисляются, но при вырезании строки с помощью substr получается совсем не тот участок html который нужен.
Что может влиять на результат ?

html - это текст в utf-8Вы пытаетесь применить функции для однобайтовых строк к многобайтовым строкам. Потому и "едет". Используйте http://php.net/manual/ru/ref.mbstring.php
...
Рейтинг: 0 / 0
Шаблонизация в PHP и символы <!--
    #39161850
Alexsalog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkleAlexsalogПеременные start и end вычисляются, но при вырезании строки с помощью substr получается совсем не тот участок html который нужен.
Что может влиять на результат ?

html - это текст в utf-8Вы пытаетесь применить функции для однобайтовых строк к многобайтовым строкам. Потому и "едет". Используйте http://php.net/manual/ru/ref.mbstring.php

Да, сработало. Но только почему на старом сайте работало без всего этого ? Там тоже кодировка utf-8.
А работало все с простыми однобайтными функциями. Может есть какая-то общая установка, которая заставляет работать функции типа substr( так же как mb_substr( ?
...
Рейтинг: 0 / 0
Шаблонизация в PHP и символы <!--
    #39161877
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexsalogМожет есть какая-то общая установка, которая заставляет работать функции типа substr( так же как mb_substr( ? Есть .
...
Рейтинг: 0 / 0
Шаблонизация в PHP и символы <!--
    #39161898
Alexsalog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkleAlexsalogМожет есть какая-то общая установка, которая заставляет работать функции типа substr( так же как mb_substr( ? Есть .

Последний вопрос - как установить это в рантайме ?
...
Рейтинг: 0 / 0
Шаблонизация в PHP и символы <!--
    #39161928
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://php.net/manual/ru/mbstring.configuration.php#ini.mbstring.func-overload Эта опция может быть изменена только в файле php.ini.
Говорят, в каких-то случаях в .htaccess и в httpd.conf можно настроить, но лично я не проверял.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Шаблонизация в PHP и символы <!--
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]