admin.php 的变量
做过phpcms开发人的一定知道,phpcms提供了大量内置的变量供我们在模版中调用,比如{$position} {$title}分别代表当前的位置与文章的标题。在方便使用的同时,我们不禁要问,为什么我们可以使用这些变量?在什么情况下,这些变量才有意义?
其实,我们可以将这几个问题归结为phpcms中html文件的生成过程。一切都是从admin.php开始的,我们在后台进行不同的操作(如生成文件,图片等)将会导致admin.php包含(include)不同的文件。而被包含者又会根据传给它参数的不同而包含不同的文件,这样一路包含下去,直到调用到我们的模版。这一路上所经过的文件和admin.php本身组成了最终的admin.php。而我们可以调用的变量就是在这些文件中出现过的变量,这也是我们判断变量是否可用的标准。这不难理解,因为我们的模版文件最终也被包含在了admin.php中,而它调用的变量或许原先不在admin.php中,但此刻却也被包含了进来。
下面以模版中自定义标签如何被翻译来解释上面的内容。这个标签实现了"上一篇下一篇"的功能,标签名为{tag_上一篇下一篇}。点击生成文章后的链接为:http://127.0.0.1/phpcms2007_sp6_gbk/phpcms/admin.php?mod=article&file=createhtml&action=create_show&channelid=1&referer=****标签代码如下:
1 php
2 defined ( ' IN_PHPCMS ' ) or exit ( ' Access Denied ' );
3 ?>
4 php
5 global $articleid , $db ;
6 $sqlpre = " SELECT * FROM phpcms_article_1 where articleid 7 $sqlaft = " SELECT * FROM phpcms_article_1 where articleid>' $articleid ' order by articleid asc " ;
8 $preart = $db -> get_one( $sqlpre );
9 $afart = $db -> get_one( $sqlaft );
10 if ( ! $preart [ ' title ' ])
11 $preart = $db -> get_one( " select * from phpcms_article_1 order by articleid desc " );
12 if ( ! $afart [ ' title ' ])
13 $afart = $db -> get_one( " SELECT * FROM phpcms_article_1 where articleid=1 " );
14 $preurl = $preart [ ' linkurl ' ];
15 $afurl = $afart [ ' linkurl ' ];
16 $pretitle = $preart [ ' title ' ];
17 $aftitle = $afart [ ' title ' ];
18 $url = $PHP_SCHEME . $PHP_DOMAIN . PHPCMS_PATH;
19 echo "
20 echo "
21 ?>
原理很简单,根据当前页面的索引($articleid)通过数据库($db)查询它的上一篇和下一篇,并最终通过echo打印的页面上。但是,我们如何得知$articleid,$db的存在呢?这就需要我们理解在点击"生成文章"后后台都做了些什么?通过分析,执行这一命令后,消息路由如下:
admin . php -> phpcms " module " article " admin.inc.php->phpcms " module " article " admin " createhtml.inc.php(case 'create_show':)->golbal.func.php(createhtml)->phpcms " module " article " include " createhtm " show . php
消息路由到了这个文件,通过:
ob_start ();
include template( $mod , $templateid );
$data = ob_get_contents ();
ob_clean ();
file_put_contents($filename, $data);完成了html文件的创建与写入。如果深究下去,可以发现template()调用了template_refresh(),而template_refresh()则调用template_parse()对phpcms的标签进行解释,并翻译了纯PHP。
之后template()函数返回,被输出到了浏览器缓冲区(由ob_start()打开),与被输出到屏幕一样,此时文件中内嵌的PHP会被翻译成html的形式。对于自定义标签来讲,它被template_parse()翻译成,因此,在输出时会调用phpcms_mytag()函数。而正是由这个函数将最终的自定义标签的文件给包含了进来。这样一来,自定义标签的文件和包含$articleid,$db的文件结合在了一起,因此,此时便可以在自定义标签文件中使用这两个变量了。

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds





Alipay Php ...

Le détournement de la session peut être réalisé via les étapes suivantes: 1. Obtenez l'ID de session, 2. Utilisez l'ID de session, 3. Gardez la session active. Les méthodes pour empêcher le détournement de la session en PHP incluent: 1. Utilisez la fonction Session_RegeReate_id () pour régénérer l'ID de session, 2. Stocker les données de session via la base de données, 3. Assurez-vous que toutes les données de session sont transmises via HTTPS.

JWT est une norme ouverte basée sur JSON, utilisée pour transmettre en toute sécurité des informations entre les parties, principalement pour l'authentification de l'identité et l'échange d'informations. 1. JWT se compose de trois parties: en-tête, charge utile et signature. 2. Le principe de travail de JWT comprend trois étapes: la génération de JWT, la vérification de la charge utile JWT et l'analyse. 3. Lorsque vous utilisez JWT pour l'authentification en PHP, JWT peut être généré et vérifié, et les informations sur le rôle et l'autorisation des utilisateurs peuvent être incluses dans l'utilisation avancée. 4. Les erreurs courantes incluent une défaillance de vérification de signature, l'expiration des jetons et la charge utile surdimensionnée. Les compétences de débogage incluent l'utilisation des outils de débogage et de l'exploitation forestière. 5. L'optimisation des performances et les meilleures pratiques incluent l'utilisation des algorithmes de signature appropriés, la définition des périodes de validité raisonnablement,

L'application du principe solide dans le développement de PHP comprend: 1. Principe de responsabilité unique (SRP): Chaque classe n'est responsable d'une seule fonction. 2. Principe ouvert et ferme (OCP): les changements sont réalisés par extension plutôt que par modification. 3. Principe de substitution de Lisch (LSP): les sous-classes peuvent remplacer les classes de base sans affecter la précision du programme. 4. Principe d'isolement d'interface (ISP): utilisez des interfaces à grain fin pour éviter les dépendances et les méthodes inutilisées. 5. Principe d'inversion de dépendance (DIP): les modules élevés et de bas niveau reposent sur l'abstraction et sont mis en œuvre par injection de dépendance.

Comment définir automatiquement les autorisations d'UnixSocket après le redémarrage du système. Chaque fois que le système redémarre, nous devons exécuter la commande suivante pour modifier les autorisations d'UnixSocket: sudo ...

Comment déboguer le mode CLI dans phpstorm? Lors du développement avec PHPStorm, nous devons parfois déboguer PHP en mode interface de ligne de commande (CLI) ...

Liaison statique (statique: :) implémente la liaison statique tardive (LSB) dans PHP, permettant à des classes d'appel d'être référencées dans des contextes statiques plutôt que de définir des classes. 1) Le processus d'analyse est effectué au moment de l'exécution, 2) Recherchez la classe d'appel dans la relation de succession, 3) il peut apporter des frais généraux de performance.

Envoyant des données JSON à l'aide de la bibliothèque Curl de PHP dans le développement de PHP, il est souvent nécessaire d'interagir avec les API externes. L'une des façons courantes consiste à utiliser la bibliothèque Curl pour envoyer le post� ...
