Heim > Artikel > Backend-Entwicklung > Eine der integrierten Funktionen der PHP-Template-Engine Smarty
Smarty verfügt über einige integrierte Funktionen.
Eingebaute Funktionen sind Teil der Vorlagensprache.
Benutzer können keine benutzerdefinierten Funktionen mit demselben Namen wie integrierte Funktionen erstellen. in Funktionen.
(Informationen zu integrierten Funktionen wie insert, if, elseif, else, ldelim, rdelim, literal, php, section, sectionelse, strip usw. finden Sie in der zweiten integrierten Funktion von php template engine smarty)
#capture function
config_load
foreach,foreachelse
include
include_php
capture
Attributname Typ Erforderlich Standardbeschreibung
Namenszeichenfolge kein Standardwert Der Name des erfassten Blocks
Zeichenfolge zuweisen Nein n/a Der Variablenname, dem die erfasste Ausgabe zugewiesen werden soll
Ob der Attributtyp Standardwertbeschreibung sein muss
Namenszeichenfolge kein Standardwert Daten Name des Erfassungsbereichs
Zeichenfolge zuweisen Nein n/a Wo der Datenerfassungsbereich zugewiesen ist Variablenname[zu testen]
Die Funktion der Erfassungsfunktion besteht darin, die von der Vorlage ausgegebenen Daten zu erfassen und zu speichern es in einer Variablen, anstatt sie auf der Seite auszugeben.
Alles in {capture name="foo" Die Daten zwischen } und {/capture} werden in der Variablen $foo gespeichert, die durch das Namensattribut angegeben wird.
Greifen Sie über $smarty.capture.foo in der Vorlage auf diese Variable zu.
Wenn kein Name angegeben ist, verwendet die Funktion standardmäßig „default“ als Parameter.
{capture} muss paarweise erscheinen , das heißt, enden Sie mit {/capture}, und die Funktion kann nicht verschachtelt werden:
{* Geben Sie beispielsweise nach der Erfassung des Inhalts eine Tabellenzeile aus, die Daten enthält , es wird nichts ausgegeben*}
{capture name=banner}
{include file="get_banner.tpl"}
{ /capture}
{if $smarty.capture.banner ne "" }
config_load
Variablen aus der Konfigurationsdatei laden
Ob der Attributtyp eine Standardwertbeschreibung haben muss
Dateizeichenfolge Ja n/a Der Name der einzubindenden Konfigurationsdatei
Abschnittszeichenfolge Nein n/a Der Name des Abschnitts, der in die Konfigurationsdatei geladen werden soll.
Bereichszeichenfolge Nein lokal Der Bereich der geladenen Daten. Der Wert muss lokal, übergeordnet oder global sein Diese Variable ist die aktuelle Vorlage und gibt an, dass der Gültigkeitsbereich dieser Variablen die aktuelle Vorlage und die übergeordnete Vorlage der aktuellen Vorlage ist (die Vorlage, die die aktuelle Vorlage aufruft, gibt an, dass der Gültigkeitsbereich dieser Variablen alle Vorlagen ist). 🎜 >global boolean Nein Nein gibt an, ob die geladene Variable global sichtbar ist, äquivalent zu „scope=parent“. Hinweis: Wenn das Bereichsattribut angegeben ist, kann dieses Attribut festgelegt werden, aber die Vorlage ignoriert den Attributwert und verwendet das Bereichsattribut als Kriterium.
{config_load file="colors.conf"}
First | Last | Address |
Beispiel:
{config_load file="colors.conf" section="Customer"}
First | Last | Address |
foreach ist neben dem Abschnitt eine weitere Lösung für die Verarbeitung von Schleifen (wählen Sie je nach Bedarf unterschiedliche Lösungen).
foreach wird zur Verarbeitung einfacher Arrays verwendet (die Elementtypen im Array sind gleich) und sein Format ist besser als Abschnitt Viel einfacher, aber der Nachteil besteht darin, dass er nur einfache Arrays verarbeiten kann.
foreach muss paarweise mit /foreach verwendet werden und die Attribute „from“ und „item“ müssen beliebig angegeben werden (eine Kombination aus Buchstaben, Zahlen und Unterstrichen).
Foreach kann verschachtelt werden, aber der Name des foreach im Nest muss eindeutig sein.
Das from-Attribut (normalerweise ein Array) bestimmt die Anzahl der Schleifen.
Die foreachelse-Anweisung wird ausgeführt, wenn die from-Variable keinen Wert hat.
Ob der Attributtyp einen Standardwert haben muss. Beschreibung
from string Ja n/a Der Name des Arrays, das in einer Schleife ausgeführt werden soll
item string Ja n/a Der Variablenname des aktuell verarbeiteten Elements
key string Nein n/a Das aktuell verarbeitete Element Der Schlüsselname von
name string Nein n/a Der Name der Schleife, früher Greifen Sie auf die Schleife zu
{* Dieses Beispiel gibt alle Elemente im Array $custid aus. Der Wert von br>
id: 1001
id: 1002
Beispiel 2:
$smarty->assign("contacts", array(array("phone" => "1", "fax" => "2", "cell" => ; "3"),
array("phone" => "555-4444", "fax" => "555 -3333", "cell" => "760-1234")));
*}
{* Der Schlüssel ist der Index des Arrays. Weitere Informationen finden Sie in der Erklärung des Arrays.*}
{foreach name =outer item=contact from=$contacts}
{foreach key=key item=item from=$contact}
{$key}: {$item}
{/foreach}
{/foreach}
Ausgabeergebnis:
Telefon: 1
Fax: 2
Mobiltelefon: 3
Telefon: 555-4444
Fax: 555-3333
Mobiltelefon : 760-1234
Die foreach-Schleife hat einen eigenen Variablennamen, der für den Zugriff auf die Schleife verwendet werden kann. Die Verwendungsmethode ist {$ smarty.foreach.foreachname.varname}, wobei foreachname der ist Das in foreach angegebene Namensattribut wird verwendet, um andere Vorlagen in die aktuelle Vorlage einzubinden. Das Dateiattribut muss angegeben werden Speicherort der Vorlagenressource.
Wenn das Zuweisungsattribut festgelegt ist, wird der diesem Attribut entsprechende Variablenname zum Speichern der Ausgabe der einzubindenden Vorlage verwendet, sodass die Ausgabe der einzubindenden Vorlage nicht angezeigt wird direkt. .
Ob der Attributtyp verwendet werden muss. Standardwertbeschreibung
Dateizeichenfolge Ja n/a Der Name der einzubindenden Vorlagendatei
Zuweisungszeichenfolge Nein n/a Dieses Attribut gibt eine Variable an, deren Ausgabe gespeichert werden soll die einzubindende Vorlage
Beispiel 1 Include-Funktion Demonstration
{include file="header. tpl"}
{* Hauptteil der Vorlage geht hierher *}
{include file="footer.tpl"}
Beispiel 2 enthält eine Funktionsdemonstration mit übergebenen Parametern
{include file= "header.tpl" title="Main Menu" table_bgcolor="#c0c0c0"}
{include file="footer. tpl" logo="http://www .php118.com/php118.gif"}
Beispiel 3 Demonstration der Include-Funktion mithilfe externer Vorlagenressourcen
{* absoluter Dateipfad *}
{* absoluter Dateipfad (das Gleiche) *}
{include file="file:/usr/local/include/templates/header .tpl"}
{* absoluter Windows-Dateipfad (MUSS das Präfix „file:" verwenden) *}
{include file="file:C:/www/pub/templates/header.tpl"}
{include file="db:header.tpl"}
include_php
Die Funktion „inluce_php“ wird zum Einbinden von PHP-Skripten in Vorlagen verwendet. Wenn der abgesicherte Modus festgelegt ist, muss sich das eingebundene Skript im Pfad „$trusted_dir“ befinden. Die Funktion „include_php“ muss das Dateiattribut festlegen, das den Speicherort angibt Die enthaltene PHP-Datei kann ein relativer Pfad zu $trusted_dir oder ein absoluter Pfad sein, um das Problem der Vorlagenkomponentisierung zu lösen. Zum Beispiel: Angenommen Es gibt eine Datenbank. Um Daten dynamisch aus einer Vorlage abzurufen, die zur Anzeige der Site-Navigation verwendet wird, können Sie den PHP-Logikteil vom Dateninhalt trennen und ihn in einem separaten Ordner speichern und das PHP-Skript dann am Anfang der Vorlage einfügen Kann überall verwendet werden. Fügen Sie diese Vorlage ein, ohne sich Gedanken darüber machen zu müssen, ob die Datenbankinformationen zuvor vom Programm abgerufen wurden.
Auch wenn die PHP-Dateien mehrmals in der Vorlage aufgerufen werden, werden sie standardmäßig nur einmal eingebunden Once-Attribut, um anzugeben, dass die Datei bei jedem Aufruf erneut eingebunden wird. Wenn das Once-Attribut auf false gesetzt ist, wird die Datei bei jedem Aufruf erneut eingebunden.
Wenn das Assign-Attribut festgelegt ist, entspricht der Variablenname Das Attribut wird verwendet, um die einzubindende PHP-Ausgabe zu speichern, sodass spätere Ausgaben mit PHP-Dateien nicht direkt angezeigt werden.
Auf das Smarty-Objekt kann über $this in der einzubindenden PHP-Datei zugegriffen werden.
Gibt an, ob der Attributtyp eine Standardwertbeschreibung haben muss.
Dateizeichenfolge Ja n/a. Der Name der zu verwendenden PHP-Datei include
once boolean Nein true Wenn die einzubindende PHP-Datei eingebunden wurde, ob sie noch eingebunden ist (ähnlich der include_once-Funktion in PHP)
assign string Nein n/a Dieses Attribut gibt eine Variable an, die gespeichert werden soll Ausgabe der einzubindenden PHP-Datei
// Variablen aus einer MySQL-Datenbank laden und der Vorlage zuweisen
// Daten aus MySQL abrufen Datenbank und weisen Sie die Daten der Vorlagenvariablen require_once("MySQL.class.php") zu;
$sql = new MySQL;
$sql->query("select * from site_nav_sections order by name",SQL_ALL );
$this->assign('sections',$sql- >record);
?>
-------- -
{* absoluter Pfad oder relativ zu $trusted_dir *}
{* Absoluter Pfad oder relativer Pfad zu $trusted_dir*}
{include_php file="/path/to/load_nav.php"}
{foreach item="curr_section" from=$sections}
< a href="http://www.php1.cn/"> Inhalt einer der integrierten Funktionen von smarty, der PHP-Template-Engine. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn).