


Lösung für das Problem, dass die Thinkphp-Vorlage aufgrund ihrer Javascript-Kenntnisse nicht direkt analysiert und ausgegeben werden kann
Das Beispiel in diesem Artikel beschreibt die Lösung des Problems, dass die Thinkphp-Vorlage nicht geparst wird und direkt so ausgegeben wird, wie sie ist. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:
1. Frage:
Ich habe kürzlich Thinkphp-Vorlagen kennengelernt, aber nach einigem Suchen habe ich endlich die Lösung gefunden.
2. Lösung:
Viele Leute sind auf das gleiche Problem gestoßen. Die in der der Variablen zugewiesenen Zeichenfolge enthaltenen Werte __ROOT__, __PUBLIC__ und __APP__ werden bei der Anzeige in der Vorlage durch echte Pfade ersetzt. Ich habe dieses Problem beim Schreiben des Timi-Dateiverwaltungssystems entdeckt.
Nachdem ich den Quellcode aus der Datei gelesen und auf der Seite ausgegeben hatte, stellte ich fest, dass, solange es sich um ein TP-Pfadzeichen handelt, es durch einen echten Pfad ersetzt wurde.
Zum Beispiel:
Nachdem die Seite ausgegeben wurde, wird sie als echter Pfad /public/ angezeigt.
Während dieser Zeit habe ich viele Versuche unternommen, z. B. die Base64-Verschlüsselung beim Zuweisen und die Dekodierung bei der Ausgabe der Vorlage, und festgestellt, dass es nicht funktioniert hat. Schließlich konnte ich nicht anders, als mir den Quellcode von Tp anzusehen und stellte fest, dass im letzten Schritt der Anzeigemethode die „Tp-Pfadkonstante“ durch Aufrufen der Tag-Methode durch den tatsächlichen Pfad ersetzt wurde. Vor der Render-Methode ist alles normal.
Ursprünglich hatte ich geplant, den Quellcode zu ändern, um die folgende Lösung für Kinderschuhe zu implementieren:
Boss, ist das eine vorübergehende Lösung oder eine endgültige Lösung?
Aber ich denke, es ist nicht schlecht, der Methode „assign()“ ein Urteil hinzuzufügen,
Wenn es $this->assign('','',false) ist, wird der Inhalt nicht ersetzt und unverändert ausgegeben.
Nachdem ich diesen Quellcode gelesen hatte, wurde mir klar, dass es nicht so einfach war und die Änderungen zu groß waren.
Die letzte Antwort eines anderen Kindes zeigte die endgültige Lösung auf:
"Sie können hier auf den Inhalt verweisen: http://www.jb51.net/article/54217.htm(Vorlagenersatz)
Mit den Vorlagenersetzungsregeln werden alle __PUBLIC__-Strings auf der Seite ersetzt. Wenn wir den __PUBLIC__-String wirklich in der Vorlage ausgeben müssen, können wir Ersetzungsregeln hinzufügen, zum Beispiel:
'--PUBLIC--' => '__PUBLIC__', // Neue Regeln zur Ausgabe von /Public string verwenden
)
Nachdem wir die Ersetzungsregel auf diese Weise hinzugefügt haben, müssen wir, wenn wir die Zeichenfolge __PUBLIC__ ausgeben möchten, nur --PUBLIC-- in der Vorlage hinzufügen. Die Ausgabemethode anderer Ersetzungszeichenfolgen ist ähnlich.
Wenn wir nach dem Hinzufügen der Ersetzungsregeln auf diese Weise die Zeichenfolge __PUBLIC__ ausgeben möchten, müssen wir nur --PUBLIC-- in der Vorlage hinzufügen. Die Ausgabemethode anderer Ersetzungszeichenfolgen ist ähnlich.
Also wurde der Plan veröffentlicht:
Konfigurieren Sie in der Tp-Konfigurationsdatei config.php
//Timi-Dateipfadwiederherstellung
'--PUBLIC--' => '__PUBLIC__',
'--APP--' => '__APP__',
'--URL--' => '__URL__',
'--ACTION--' => '__ACTION__',
'--SELF--' => '__SELF__',
'--INFO--' => '__INFO__',
'--EXT--' => '__EXT__'
),
Ersetzen Sie beim Lesen des Quellcodes das „Pfadkonstantenzeichen“ __ROOT__ durch --ROOT--:
$fileContent=htmlspecialchars(preg_replace('/__(.*?)__/is','--$1--',$fileContent));
Dann wird die Konfiguration von TMPL_PARSE_STRING einfach ersetzt, wenn die Vorlage analysiert wird, wie in der Abbildung unten gezeigt:
Seitdem ist dieses Problem „vorübergehend“ und „perfekt“ gelöst.
Ich hoffe, dass dieser Artikel für alle bei der Programmierung des ThinkPHP-Frameworks hilfreich sein wird.

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Häufig gestellte Fragen und Lösungen für das Ticket-Ticket-Ticket-Ticket in Front-End im Front-End-Entwicklungsdruck ist der Ticketdruck eine häufige Voraussetzung. Viele Entwickler implementieren jedoch ...

Das Onblur-Ereignis, das die Avue-Crud-Reihenbearbeitung in der Avue-Komponentenbibliothek implementiert, löst die Avue-Crud-Komponente manuell aus. Es bietet bequeme Inline-Bearbeitungsfunktionen, aber manchmal müssen wir ...

Warum wird mein Code nicht wirksam, wenn sie RXJS zum Betrieb in Streams verwenden? Rxjs lernen ...

So geben Sie die Version lokaler Pakete in PNPM- und Monorepo -Projekten an, wenn Sie Projekte mithilfe von PNPM und Monorepo verwalten.

GitePages statische Website -Bereitstellung fehlgeschlagen: 404 Fehlerbehebung und Auflösung bei der Verwendung von Gitee ...

Der MAX-Height-Attributfehler der ElementPlus-Tabellenkomponente und die Lösung besteht darin, Element zu verwenden ...

Das Blur-Ereignis, das die Avue-Crud-Tabellenzeilenbearbeitung in der Avue-Komponentenbibliothek implementiert, löst die Avue-Crud-Komponente manuell aus, um bequeme Tabellendatenbearbeitungsfunktionen bereitzustellen, aber die Zeilenbearbeitung ...

Über Vuematerialyear ...
