В этой статье описывается решение шаблона ThinkPhp, не анализируя его непосредственно вывод, как есть. Поделитесь этим для вашей ссылки. Детали следующие:
1. Вопрос:
Недавно я изучал шаблон ThinkPhp, но я обнаружил, что страница шаблона была таким, каким она была. После жесткого поиска я наконец нашел решение.
2. Решение:
Многие люди столкнулись с той же проблемой. Символы __root__, __public__ и __app__ содержатся в строке, назначенной в переменной, заменяются реальным путем при отображении в шаблоне. То есть эта проблема была обнаружена при написании системы управления файлами Timi.
Прочитайте исходный код из файла и выведите его на страницу и обнаружите, что до тех пор, пока символ Path является TP, он заменяется реальным путем.
например:
Кода кода выглядит следующим образом: $ this-> назначение ('filecontent', $ filecontent); // $ filecontent содержит символ __public__ «Постоянный путь».
Страница выводится как реальный путь /публика /.
В течение этого периода я пробовал много вещей, таких как шифрование Base64 при назначении, и декодировать его при выводе шаблона, но обнаружил, что он не работает. Наконец, я не мог не взглянуть на исходный код TP и обнаружил, что на последнем этапе метода отображения я заменил «постоянный путь TP» на реальный путь, вызывая метод тега. Это нормально перед методом рендеринга.
Первоначально я планировал изменить исходный код, чтобы реализовать следующие требования детской обуви:
Босс, это временное решение или окончательное решение?
Но я думаю, что это хорошо добавить суждение в метод назначения ().
Если это $ this-> назначение ('', '', false), контент не будет заменен, а вывод будет как есть.
В результате, прочитав этот исходный код, я обнаружил, что это было не так просто, а изменения были слишком большими.
Последний ответ от другой детской обуви указывал на окончательное решение:
"Вы можете обратиться к контенту здесь: //www.vevb.com/article/54217.htm (замена шаблона)
С правилом замены шаблона все строки __public__ на странице будут заменены. Если вам действительно нужно вывести __public__ строки в шаблон, мы можем добавить правило замены, например:
Скопируйте код следующим образом: 'tmpl_parse_string' => array (
'-public--' => '__public__', // Использовать новые правила для вывода/публичная строка
)
После добавления правила замены таким образом, если мы хотим вывести строку __public__, нам нужно только добавить-Public-- в шаблон, а метод вывода других строк замены аналогичен.
После добавления правила замены таким образом, если мы хотим вывести строку __public__, нам нужно только добавить-Public-- в шаблон, а метод вывода других строк замены аналогичен.
Итак, был выпущен план:
Настройка в файле конфигурации TP config.php
Скопировать код следующим образом: 'tmpl_parse_string' => array (// configuration
// восстановить путь файла Timi
'-public--' => '__public__',
'-App-' => '__app__',
'-url--' => '__url__',
'-action--' => '__acchion__',
'-self--' => '__self__',
'--Info--' => '__info__',
'-ext--' => '__ext__'
),
При чтении исходного кода замените «постоянный символ пути» __ROOT__ AS-ROOT--:
Кода кода выглядит следующим образом: $ filecontent = file_get_contents ($ filePath);
$ filecontent = htmlspecialChars (preg_replace ('/__(.*?)__/ IS', '-$ 1-', $ filecontent));
Затем конфигурация TMPL_PARSE_STRING заменяется, когда шаблон проанализируется, как показано на рисунке ниже:
Поэтому эта проблема была решена «временно» и «идеально».
Я надеюсь, что эта статья будет полезна для каждого программирования Framewry ThinkPhp.