Rumah hujung hadapan web tutorial js Penyelesaian kepada masalah yang templat Thinkphp tidak menghuraikan dan mengeluarkan secara langsung kerana kemahiran is_javascript

Penyelesaian kepada masalah yang templat Thinkphp tidak menghuraikan dan mengeluarkan secara langsung kerana kemahiran is_javascript

May 16, 2016 pm 04:32 PM
thinkphp templat Penyelesaian

Contoh dalam artikel ini menerangkan penyelesaian kepada masalah bahawa templat Thinkphp tidak dihuraikan dan secara langsung mengeluarkannya sebagaimana adanya. Kongsikan dengan semua orang untuk rujukan anda. Butirannya adalah seperti berikut:

1. Soalan:

Saya sedang mempelajari templat thinkphp baru-baru ini, tetapi saya mendapati bahawa halaman templat itu keluar seperti sedia ada Selepas beberapa pencarian yang sukar, saya akhirnya menemui penyelesaiannya.

2. Penyelesaian:

Ramai orang telah menghadapi masalah yang sama __ROOT__, __PUBLIC__ dan __APP__ yang terkandung dalam rentetan yang diberikan kepada pembolehubah digantikan dengan laluan sebenar apabila dipaparkan dalam templat. Saya menemui masalah ini semasa menulis sistem pengurusan fail Timi.

Selepas membaca kod sumber daripada fail dan mengeluarkannya ke halaman, saya mendapati bahawa selagi ia adalah watak laluan TP, ia telah digantikan dengan laluan sebenar.
Contohnya:

Salin kod Kod adalah seperti berikut:
$this->assign('fileContent',$ fileContent); //$fileContent mengandungi __PUBLIC__ aksara "pemalar laluan".


Selepas halaman dikeluarkan, ia dipaparkan sebagai laluan sebenar /public/.
Dalam tempoh ini, saya telah melalui banyak percubaan, seperti penyulitan base64 semasa menetapkan, menyahkod semasa mengeluarkan templat, dan mendapati ia tidak berfungsi. Akhirnya, saya tidak dapat membantu tetapi melihat kod sumber Tp, dan mendapati bahawa dalam langkah terakhir kaedah paparan, "Pemalar laluan Tp" telah digantikan dengan laluan sebenar dengan memanggil kaedah teg. Semuanya normal sebelum kaedah render.

Saya pada asalnya merancang untuk menukar kod sumber untuk melaksanakan penyelesaian berikut untuk kasut kanak-kanak:
Bos, adakah ini penyelesaian sementara atau penyelesaian muktamad?
Tetapi saya rasa tidak salah untuk menambah pertimbangan dalam kaedah assign(),
Jika ia $this->assign('','',false), kandungan tidak akan diganti dan akan dikeluarkan seperti sedia ada.

Hasilnya, selepas membaca kod sumber ini, saya menyedari bahawa ia tidak semudah itu dan perubahannya terlalu besar.

Balasan terakhir daripada kanak-kanak lain menunjukkan penyelesaian terakhir:

"Anda boleh merujuk kandungan di sini: http://www.jb51.net/article/54217.htm(penggantian templat)

Dengan peraturan penggantian templat, semua rentetan __PUBLIC__ pada halaman akan digantikan Jika kita benar-benar perlu mengeluarkan rentetan __PUBLIC__ pada templat, kita boleh menambah peraturan penggantian, contohnya:
.

Salin kod Kod adalah seperti berikut:
'TMPL_PARSE_STRING' =>array(
'--PUBLIC--' => '__PUBLIC__', // Gunakan peraturan baharu untuk mengeluarkan /Rentetan awam
)

Selepas menambah peraturan penggantian dengan cara ini, jika kita ingin mengeluarkan rentetan __PUBLIC__, kita hanya perlu menambah --PUBLIC-- dalam templat Kaedah keluaran rentetan gantian lain adalah serupa.

Selepas menambah peraturan penggantian dengan cara ini, jika kita ingin mengeluarkan rentetan __PUBLIC__, kita hanya perlu menambah --PUBLIC-- dalam templat Kaedah keluaran rentetan gantian yang lain adalah serupa.

Jadi, rancangan itu dikeluarkan:

Konfigurasikan dalam fail konfigurasi Tp config.php

Salin kod Kod adalah seperti berikut:
'TMPL_PARSE_STRING' => tatasusunan (//konfigurasi laluan
                           
//Pemulihan laluan fail Timi
'--AWAM--' => '__AWAM__',
'--APP--' => '__APP__',
'--URL--' => '__URL__',
'--ACTION--' => '__ACTION__',
'--SELF--' => '__SELF__',
'--INFO--' => '__INFO__',
'--EXT--' => '__EXT__'
),

Apabila membaca kod sumber, gantikan "path constant character" __ROOT__ dengan --ROOT--:

Salin kod Kod adalah seperti berikut:
$fileContent=file_get_contents($filePath); $fileContent=htmlspecialchars(preg_replace('/__(.*?)__/is','--$1--',$fileContent));

Kemudian konfigurasi TMPL_PARSE_STRING hanya diganti apabila templat dihuraikan, seperti yang ditunjukkan dalam rajah di bawah:

Sejak itu, masalah ini telah "sementara" dan "sempurna" diselesaikan.

Saya harap artikel ini akan membantu pengaturcaraan rangka kerja ThinkPHP semua orang.

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

GITEE PAGES PENYEDIAAN LAMAN WEB STATIC Gagal: Bagaimana menyelesaikan masalah dan menyelesaikan kesilapan fail tunggal 404? GITEE PAGES PENYEDIAAN LAMAN WEB STATIC Gagal: Bagaimana menyelesaikan masalah dan menyelesaikan kesilapan fail tunggal 404? Apr 04, 2025 pm 11:54 PM

Giteepages Statik Laman Web Penggunaan Gagal: 404 Penyelesaian Masalah dan Resolusi Ralat Semasa Menggunakan Gitee ...

Bagaimana untuk menentukan versi pakej tempatan dalam projek PNPM dan Monorepo? Bagaimana untuk menentukan versi pakej tempatan dalam projek PNPM dan Monorepo? Apr 04, 2025 pm 04:06 PM

Cara Menentukan Versi Pakej Tempatan dalam Projek PNPM dan Monorepo Apabila menguruskan projek menggunakan PNPM dan Monorepo, anda sering menghadapi keperluan untuk berkongsi kawasan tempatan antara projek ...

Mengapa kod RXJS saya tidak berkuatkuasa semasa beroperasi di sungai? Mengapa kod RXJS saya tidak berkuatkuasa semasa beroperasi di sungai? Apr 04, 2025 pm 06:27 PM

Mengapa kod saya tidak berkuat kuasa apabila menggunakan RXJS untuk beroperasi di sungai? Belajar RXJS ...

Bagaimana cara menggunakan XPath untuk mencari dari nod DOM yang ditentukan di JavaScript? Bagaimana cara menggunakan XPath untuk mencari dari nod DOM yang ditentukan di JavaScript? Apr 04, 2025 pm 11:15 PM

Penjelasan terperinci mengenai kaedah carian XPath di bawah nod Dom dalam JavaScript, kita sering perlu mencari nod tertentu dari pokok Dom berdasarkan ekspresi XPath. Sekiranya anda perlu ...

Apakah sebab dan penyelesaian untuk fail pelayan yang tidak dapat dimuat turun selepas konfigurasi sftp.json? Apakah sebab dan penyelesaian untuk fail pelayan yang tidak dapat dimuat turun selepas konfigurasi sftp.json? Apr 04, 2025 pm 06:54 PM

Penyelesaian kepada masalah yang fail pelayan tidak dapat dimuat turun selepas konfigurasi sftp.json Setelah mengkonfigurasi fail sftp.json, pengguna mungkin menghadapi ketidakupayaan untuk memuat turun fail pelayan sasaran ...

Bagaimana menyelesaikan masalah yang hasil transformasi unjuran opencv.js adalah gambar telus kosong? Bagaimana menyelesaikan masalah yang hasil transformasi unjuran opencv.js adalah gambar telus kosong? Apr 04, 2025 pm 03:45 PM

Bagaimana untuk menyelesaikan masalah imej telus dengan hasil transformasi unjuran OpenCV.js kosong. Apabila menggunakan OpenCv.js untuk pemprosesan imej, kadang -kadang anda akan menemui imej selepas transformasi unjuran ...

Elemen ditambah komponen max-tinggi tidak sah? Bagaimana untuk membuat jadual sangat mudah disesuaikan dan dipaparkan scrollbars? Elemen ditambah komponen max-tinggi tidak sah? Bagaimana untuk membuat jadual sangat mudah disesuaikan dan dipaparkan scrollbars? Apr 04, 2025 pm 04:03 PM

Kegagalan atribut ketinggian max komponen jadual elementplus dan penyelesaiannya adalah dengan menggunakan elemen ...

See all articles