La combinaison optimale de l'environnement d'exploitation PHP est Apache+MySQL+PHP. Cet environnement d'exploitation peut être configuré sur différents systèmes d'exploitation (tels que Windows, Linux, etc.) et n'est pas limité par l'environnement d'exploitation. système, c'est pourquoi on l'appelle Cross-platform
2. Combien de méthodes existe-t-il pour la soumission de données dans le développement WEB ? Quelle est la différence ? Quelle méthode Baidu utilise-t-il ?
Méthodes Get et Post
Différences : 1. Get obtient les données du serveur et Post transmet les données au serveur
2 La valeur transmise par Get est visible dans. l'url et post Invisible dans l'url
4. La valeur transmise par Get est généralement inférieure à 2 Ko, et la taille de la valeur transmise par post peut être définie dans php.ini
5. . La sécurité de get n'est pas faible et la sécurité de post Plus élevée, mais l'efficacité d'exécution est supérieure à celle de Post
Recommandations :
1 Le type get est moins sécurisé que le type Post. .Il contient des informations confidentielles. Il est recommandé d'utiliser le type de soumission de données Post
2. Il est recommandé d'utiliser la méthode Get pour la requête de données ; supprimer des données ;
La méthode get utilisée par Baidu, car elle est visible à partir de son URL
3. Comprendre quels frameworks, moteurs de modèles, systèmes, etc. de PHP
Framework : Il existe de nombreux frameworks, tels que zendframe, CI, Yii, etc. Ce que nous avons appris, c'est thinkphp
Moteur de modèles : Il y en a aussi Il y en a beaucoup dans les manuels. Ce que nous avons appris, c'est le smarty.
système : il en existe beaucoup, comme : les produits de Kangsheng (uchome, supesite, discuzX, etc.), le système Empire, DEDE (Dream Weaver), ecshop, etc. , ce que nous avons appris c'est DEDECMS, Ecshop
4. Quelles sont les technologies web front-end que vous maîtrisez ?
Maîtrise de la mise en page Web p+CSS, JavaScript, du framework jQuery, du traitement d'images Photoshop
5 Quels sont les avantages d'AJAX ?
ajax est une technologie de transmission asynchrone qui peut être implémentée via javascript ou le framework JQuery pour obtenir un rafraîchissement partiel, ce qui réduit la pression sur le serveur et améliore l'expérience utilisateur
6. -une sécurité C'est très important pour un ensemble de programmes. Veuillez me dire à quels mécanismes de sécurité il faut prêter attention pendant le développement ?
①Empêcher la soumission à distance ; ②Empêcher l'injection SQL et filtrer les codes spéciaux ; ③Empêcher l'inondation de la machine d'enregistrement et utiliser des codes de vérification ;
7. Dans le développement de programmes, comment améliorer les performances du programme Opérationnel. efficacité?
① Optimisez les instructions SQL, essayez de ne pas utiliser select * dans les instructions de requête, utilisez quel champ pour vérifier quel champ ; utilisez moins de sous-requêtes et pouvez être remplacé par des connexions de table ; ② Créez des index dans les données ; tables ; ③ Droit Générer un cache pour les données fréquemment utilisées dans le programme ;
8. PHP peut-il être utilisé avec d'autres bases de données ?
PHP est la meilleure combinaison avec la base de données MYSQL. Bien entendu, PHP peut également être utilisé avec d'autres bases de données, telles que MSSQL. PHP a réservé des fonctions pour faire fonctionner MSSQL, qui peuvent être utilisées tant qu'il est activé.
9. De nos jours, la structure à trois couches MVC est souvent adoptée en programmation. À quelles trois couches MVC fait-il référence et quels sont ses avantages ?
Les trois couches de MVC font respectivement référence au modèle commercial, à la vue et au contrôleur. La couche contrôleur appelle le modèle pour traiter les données, puis mappe les données sur la couche de vue pour l'affichage. ① Il peut permettre la réutilisation du code, éviter la redondance du code ; ②M et V implémentent la séparation du code, afin que le même programme puisse utiliser différentes expressions
10. Compréhension du format de données json ?
JSON (JavaScript Object Notation) est un format d'échange de données léger. Le format de données json est fixe et peut être utilisé pour le transfert de données dans plusieurs langues.
Le format Json est traité en PHP. est json_decode(string $json [, bool $assoc]), qui accepte une chaîne au format JSON et la convertit en variable PHP. Le paramètre json est la chaîne au format json à décoder. assoc renverra un tableau au lieu d'un objet lorsque ce paramètre est VRAI ;
Json_encode : Convertir les variables PHP au format json
14. Quelles sont les fonctions courantes permettant à PHP de traiter les tableaux ? (Concentrez-vous sur les « paramètres » et la « valeur de retour » de la fonction)
①array() crée un tableau ; ②count() renvoie le nombre d'éléments dans le tableau ; ③array_push() insère un ou plusieurs éléments dans la fin du tableau ( Pousser sur la pile) ; ④array_column() renvoie la valeur d'une seule colonne dans le tableau d'entrée ; ⑤array_combine() crée un nouveau tableau en fusionnant deux tableaux ; ⑥array_reverse() renvoie le tableau dans l'ordre inverse ; () supprime les doublons dans le tableau Value ; ⑧in_array() vérifie si la valeur spécifiée existe dans le tableau
15 Quelles sont les fonctions courantes permettant à PHP de traiter les chaînes ? (Focus sur les « paramètres » et la « valeur de retour » de la fonction)
①trim() supprime les caractères vides et autres caractères des deux côtés de la chaîne ; ②substr_replace() remplace une partie de la chaîne par une autre chaîne ; ③substr_count() compte le nombre de fois qu'une sous-chaîne apparaît dans la chaîne ; une partie de la chaîne ; ⑤strtolower() convertit la chaîne en lettres minuscules ; ⑥strtoupper() convertit la chaîne en lettres majuscules ; ⑦strtr() convertit les caractères spécifiques de la chaîne ⑧strrchr() trouve la chaîne dans un autre caractère ; string; ⑨ strstr() trouve la première occurrence d'une chaîne dans une autre chaîne (sensible à la casse) ; strrev() inverse la chaîne ; strlen() renvoie la longueur de la chaîne ; str_replace() Remplace certains caractères dans la chaîne (casse). -sensitive) ; print() génère une ou plusieurs chaînes ; explosive() divise la chaîne en un tableau ; is_string() détecte si la variable est une chaîne ; strip_tags() démarre à partir de Supprimer les balises HTML d'une chaîne ; une fonction utilisée pour intercepter le chinois et l'anglais
16. Fonctions couramment utilisées pour le temps de traitement PHP ? (Focus sur les « paramètres » et la « valeur de retour » de la fonction)
date_default_timezone_get() renvoie le fuseau horaire par défaut.
date_default_timezone_set() définit le fuseau horaire par défaut.
date() formate l'heure/la date locale.
getdate() renvoie les informations de date/heure.
gettimeofday() renvoie les informations sur l'heure actuelle.
microtime() renvoie le nombre de microsecondes dans l'heure actuelle.
mktime() renvoie l'horodatage Unix d'une date.
strtotime() analyse toute description de date ou d'heure de texte anglais dans un horodatage Unix.
time() renvoie l'horodatage Unix de l'heure actuelle.
17. Quelles sont les fonctions courantes utilisées en PHP pour traiter les bases de données ? (Concentrez-vous sur les « paramètres » et la « valeur de retour » de la fonction)
Veuillez vous référer au manuel PHP et lisez-le attentivement. Cet élément est très important
Quels sont les éléments courants. utilisé des fonctions pour exploiter des fichiers en PHP ? (Concentrez-vous sur les « paramètres » et la « valeur de retour » de la fonction)
①Ouvrez le fichier ; ②Supprimez le fichier ; ④Écrivez le fichier ; ⑤Modifiez le fichier ; ⑥Fermez le fichier ; . Etc., cet élément est très important. Il est souvent utilisé pour générer du cache ou des fichiers statiques au travail. Veuillez vous référer au manuel PHP et le lire attentivement
19. (dossiers) ? (Concentrez-vous sur les « paramètres » et la « valeur de retour » de la fonction)
①Ouvrez le répertoire ; ②Supprimez le répertoire ; ④Créez le répertoire ; ⑤Modifiez le répertoire ; est très important, au travail, vous créez ou supprimez souvent des répertoires pour les fichiers téléchargés, et créez ou supprimez des répertoires pour les caches et les pages statiques. Veuillez vous référer au manuel PHP et lire attentivement
.
Lors de la définition et de l'implémentation d'une classe, vous pouvez le faire sur la base d'une classe existante. Vous pouvez utiliser le contenu défini par cette classe existante comme votre propre contenu, et vous pouvez ajouter du nouveau contenu ou le modifier. La méthode est rendue plus adaptée aux besoins particuliers, c'est-à-dire l'héritage. L'héritage est un mécanisme permettant aux sous-classes de partager automatiquement les données et les méthodes de la classe parent. Il s'agit d'une relation entre les classes qui améliore la réutilisabilité et l'évolutivité du logiciel.
Polymorphisme :
Le polymorphisme signifie que le type spécifique pointé par la variable de référence définie dans le programme et l'appel de méthode émis via la variable de référence ne sont pas déterminés lors de la programmation, mais dans le programme. est déterminé pendant l'exécution qu'une variable de référence pointera vers un objet d'instance de quelle classe. L'appel de méthode émis par la variable de référence est une méthode implémentée dans quelle classe. Cela doit être déterminé lors de l'exécution du programme.
Abstraction :
L'abstraction consiste à découvrir les similitudes et les points communs de certaines choses, puis à classer ces choses dans une classe. Ce cours ne considère que les similitudes et les points communs de ces choses, et Will. ignorez les aspects qui ne sont pas pertinents par rapport au sujet et à l'objectif actuels et concentrez-vous sur les aspects qui sont pertinents par rapport à l'objectif actuel. Par exemple, si vous voyez une fourmi et un éléphant et que vous pouvez imaginer à quel point ils se ressemblent, c’est de l’abstraction.
6. Quels sont les concepts et les différences entre les classes abstraites et les interfaces ?
Réponse : Classe abstraite : Il s'agit d'une classe spéciale qui ne peut pas être instanciée et ne peut être utilisée que comme classe parent d'autres classes. Déclaré à l'aide du mot-clé abstract.
C'est une classe abstraite spéciale et une classe spéciale qui utilise la déclaration d'interface.
(1) Les opérations des classes abstraites sont implémentées via le mot-clé d'héritage extends, et l'utilisation des interfaces est implémentée via le mot-clé Implements.
(2) Il y a des membres de données dans la classe abstraite, qui peuvent réaliser l'encapsulation de données, mais l'interface n'a pas de membres de données.
(3) Les classes abstraites peuvent avoir des constructeurs, mais les interfaces n'ont pas de constructeurs.
(4) Les méthodes des classes abstraites peuvent être modifiées avec les mots-clés private, protected et public (les méthodes abstraites ne peuvent pas être privées), tandis que les méthodes des interfaces ne peuvent être modifiées qu'avec le mot-clé public.
(5) Une classe ne peut hériter que d'une seule classe abstraite, et une classe peut implémenter plusieurs interfaces en même temps.
(6) Une classe abstraite peut avoir un code d'implémentation pour les méthodes membres, mais une interface ne peut pas avoir de code d'implémentation pour les méthodes membres.
7. Qu'est-ce qu'un constructeur, qu'est-ce qu'un destructeur et quelle est sa fonction ?
Réponse : Le constructeur (méthode) est la première méthode automatiquement appelée par l'objet après la création de l'objet. Il existe dans chaque classe déclarée et constitue une méthode membre spéciale. Sa fonction est d'effectuer certaines tâches d'initialisation. En Php, __construct() est utilisé pour déclarer la méthode constructeur, et une seule peut être déclarée.
Le destructeur (méthode) est exactement l'opposé du constructeur. C'est la dernière méthode automatiquement appelée par l'objet avant sa destruction. Il s'agit d'un contenu nouvellement ajouté dans PHP5 qui est utilisé pour effectuer certaines opérations spécifiques avant de détruire un objet, comme la fermeture de fichiers et la libération de mémoire.
8. Comment surcharger la méthode de la classe parent, avec des exemples
Réponse : Surcharger signifie remplacer la méthode de la classe parent, c'est-à-dire utiliser la méthode dans la sous-classe Le remplacement d'une méthode héritée de la classe parent est également appelé remplacement de méthode.
La clé pour remplacer la méthode de la classe parent est de créer la même méthode dans la classe parent de la sous-classe, y compris le nom de la méthode, les paramètres et le type de valeur de retour. En PHP, seuls les noms des méthodes doivent être identiques.
9. Quelles sont les méthodes magiques couramment utilisées ? Exemple
Réponse : PHP stipule que les méthodes commençant par deux traits de soulignement (__) sont réservées comme méthodes magiques, il est donc recommandé que le nom de votre fonction ne commence pas par __, sauf s'il s'agit de surcharger une méthode magique existante.
__construct() est automatiquement appelée lors de l'instanciation d'une classe.
__destruct() est automatiquement appelée lorsque l'objet de classe est utilisé.
__set() est appelé lors de l'attribution d'une valeur à une propriété non définie.
__get() est appelé lorsque des propriétés non définies sont appelées.
__isset() sera appelé lors de l'utilisation de la fonction isset() ou empty().
__unset() sera appelé lorsque unset() est utilisé.
__sleep() est appelé lors de la sérialisation à l'aide de Serialize.
__wakeup() est appelé lors de la désérialisation à l'aide de unserialize.
__call() est appelée lors de l'appel d'une méthode qui n'existe pas.
__callStatic() appelle une méthode statique qui n'existe pas.
__toString() est appelée lors de la conversion d'un objet en chaîne. Comme l'écho.
__invoke() Appelé lors de la tentative d'invocation d'un objet en tant que méthode.
__set_state() est appelé lors de l'utilisation de la fonction var_export(). Accepte un paramètre de tableau.
__clone() est appelée lors de l'utilisation de clone pour copier un objet.
10. Que représentent respectivement les trois mots-clés $this et self et parent ? Dans quelles situations est-il utilisé ?
Réponse : $cet objet actuel
classe auto-actuelle
classe parent parent de la classe actuelle
$ceci est utilisé dans la classe actuelle, utilisez -> ;Propriétés et méthodes d'appel.
self est également utilisé dans la classe actuelle, mais il doit être appelé en utilisant ::.
parent est utilisé dans les cours.
11. Comment définir des constantes dans une classe, comment appeler des constantes dans une classe et comment appeler des constantes en dehors d'une classe.
Réponse : Les constantes de la classe sont également des constantes membres. Une constante est une quantité qui ne change pas et est une valeur constante.
Définissez des constantes à l'aide du mot-clé const.
Par exemple : const PI = 3.1415326;
Que ce soit au sein d'une classe ou en dehors d'une classe, l'accès aux constantes est différent de celui des variables. Les constantes n'ont pas besoin d'instancier les objets
.Accès aux constantes Le format est le nom de la classe plus le symbole de l'opération de portée (double deux-points) à appeler.
C'est-à-dire : nom de classe :: nom de constante de classe
12 Comment utiliser l'opérateur de portée ::? Dans quelles situations est-il utilisé ?
Réponse : Appeler des constantes de classe
Appeler des méthodes statiques
13. Comment fonctionne la méthode __autoload() ?
Réponse : La condition de base pour utiliser cette fonction magique est que le nom du fichier de classe doit être cohérent avec le nom de la classe.
Lorsque le programme est exécuté pour instancier une certaine classe, si le fichier de classe n'est pas introduit avant l'instanciation, la fonction __autoload() sera automatiquement exécutée.
Cette fonction trouvera le chemin du fichier de classe en fonction du nom de la classe instanciée. Lorsqu'il est déterminé que le fichier de classe existe dans le chemin du fichier de classe,
le fera. exécutez include ou require pour le charger. Entrez dans cette classe, puis le programme continue de s'exécuter. Si le fichier n'existe pas dans ce chemin, une erreur sera affichée.
L'utilisation de la fonction magique de chargement automatique élimine le besoin d'écrire de nombreuses fonctions include ou require.
1. Frameworks PHP communs
Réponse : thinkPHP
yii
ZendFramework
CakePhp
sy
2. Comment comprendre le fichier à entrée unique dans TP ?
Réponse : ThinkPHP adopte un mode d'entrée unique pour le déploiement et l'accès au projet. Quelle que soit la fonction exécutée, un projet a une entrée unifiée (mais pas nécessairement la seule). Il faut dire que tous les projets partent du fichier d'entrée, et les fichiers d'entrée de tous les projets sont similaires. Le fichier d'entrée comprend principalement :
Définir le chemin du framework, le chemin du projet et le nom du projet (facultatif)
Définir les constantes associées pour le mode de débogage et le mode d'exécution (facultatif)
Charger le fichier d'entrée du framework (obligatoire)
3. ? (Comprendre)
Réponse : MVC est une méthode de séparation de la couche logique et de la couche de présentation d'une application. ThinkPHP est également basé sur le modèle de conception MVC. MVC n'est qu'un concept abstrait sans réglementation particulièrement claire. La superposition MVC dans ThinkPHP se reflète grossièrement dans :
Modèle (M) : La définition du modèle est complétée par la classe Model.
Contrôleur (C) : le contrôleur d'application (classe d'application du contrôleur principal) et le contrôleur d'action assument tous deux le rôle de contrôleur. Le contrôleur d'action complète le contrôle des processus métier, tandis que le contrôleur d'application est responsable du contrôle de la planification.
View (V) : il se compose d'une classe View et d'un fichier modèle. Le modèle est séparé à 100 % et peut être prévisualisé et produit indépendamment.
Mais en fait, ThinkPHP ne s'appuie pas sur M ou V, ce qui signifie qu'il peut fonctionner sans modèle ni vue. Il ne repose même pas sur C. En effet, ThinkPHP dispose également d'un contrôleur principal au-dessus d'Action, le contrôleur d'application, qui est responsable de la planification globale de l'application. En l’absence de C, la vue V doit exister, sinon ce n’est plus une application complète.
En bref, le modèle MVC de ThinkPHP fournit uniquement un moyen de développement agile, plutôt que de s'en tenir au MVC lui-même.
5. Comment comprendre le comportement dans l'architecture ThinkPHP 3.0 trois (noyau + comportement + pilote) ?
Réponse : Core + Behaviour + Driver
Abréviation officielle de TP : CBD
Core : C'est le code de base du framework, une chose indispensable, TP lui-même est un framework développé sur la base des idées MVC.
Comportement : le comportement joue un rôle décisif dans l'architecture de la nouvelle version de ThinkPHP. Au-dessus du noyau du système, il existe de nombreux bits d'extension de balise, et chaque position de balise peut exécuter son propre comportement indépendant à son tour. C'est ainsi que sont nées les extensions comportementales, et de nombreuses fonctions du système sont également complétées par des extensions comportementales intégrées. Toutes les extensions comportementales sont remplaçables et additives, constituant ainsi la base de l'assemblage du cadre sous-jacent.
Pilote : pilote de base de données, pilote de cache, pilote de bibliothèque de balises et pilote de moteur de modèles, ainsi que des extensions de classe externes.
Cadre. En fait, il s'agit d'un produit semi-fini d'une certaine application, d'un ensemble de composants que vous pouvez choisir et utiliser pour compléter votre propre système. Pour faire simple, vous utilisez la scène installée par d’autres et vous jouez. De plus, les frameworks sont généralement des logiciels matures et continuellement mis à jour.
6. Quelle est la configuration conventionnelle ?
Réponse : Configuration de la convention Page précédente Page suivante Les conventions sont plus importantes que les configurations. Il s'agit d'une idée importante que le système suit. Le système dispose d'un fichier de configuration de convention intégré (Confconvention.php situé dans le répertoire système. ). Selon la plupart La configuration par défaut des paramètres communs est utilisée. Par conséquent, pour le fichier de configuration du projet d'application, il vous suffit souvent de configurer des paramètres de configuration différents ou nouveaux par rapport à la configuration conventionnelle. Si vous adoptez complètement la configuration par défaut, vous n'avez même pas besoin de définir de fichier de configuration.
Le fichier de configuration conventionnel sera automatiquement chargé par le système et n'a pas besoin d'être chargé dans le projet.
7. Qu'est-ce que l'injection SQL ? (Comprendre)
Réponse : les attaques par injection SQL sont l'un des moyens couramment utilisés par les pirates pour attaquer les bases de données. Certains programmeurs ne jugent pas la légalité des données saisies par l'utilisateur lors de l'écriture du code. L'injecteur peut saisir un code de requête de base de données dans le formulaire et le soumettre. Le programme rassemblera les informations soumises pour générer une instruction SQL complète, et le serveur le sera. trompé. Exécutez la commande SQL malveillante. L'injecteur obtient avec succès certaines données sensibles en fonction des résultats renvoyés par le programme et contrôle même l'ensemble du serveur. Il s'agit d'une injection SQL.
8. Comment ThinkPHP empêche-t-il l'injection SQL ? (Comprendre)
Réponse : (1) Essayez d'utiliser des tableaux pour les conditions de requête, ce qui est un moyen plus sûr
(2) Si vous devez utiliser des conditions de requête de chaîne, utilisez le mécanisme de prétraitement ;
(3) Activez la vérification du type de champ de données et vous pouvez forcer la conversion des types de données numériques ; (la vérification du type de champ est obligatoire depuis la version 3.1)
(4) Utilisez la vérification automatique et mécanismes de saisie semi-automatique pour le filtrage personnalisé des applications ;
(5) Utiliser la vérification du type de champ, la vérification automatique et les mécanismes de saisie semi-automatique pour éviter la saisie de données malveillantes.
9. Comment activer le mode débogage ? Quels sont les avantages du mode débogage ?
Réponse : L'activation du mode débogage est très simple. Il vous suffit d'ajouter une ligne de code de définition constante au fichier d'entrée :
//Activer le mode débogage
definition('APP_DEBUG', true);
//Charger le fichier d'entrée du framework
require './ThinkPHP/ThinkPHP.php' ;
in Après avoir terminé la phase de développement et déployé dans l'environnement de production, il vous suffit de supprimer le code de définition du mode débogage pour passer en mode déploiement. Après avoir activé le mode de débogage, le système chargera d'abord le fichier de configuration de débogage par défaut du système, puis chargera le fichier de configuration de débogage du projet. Les avantages du mode de débogage sont :
Activer la journalisation, n'importe quel. les informations d'erreur et les informations de débogage seront enregistrées en détail pour faciliter le débogage ;
Désactivez le cache des modèles, les modifications du modèle peuvent prendre effet immédiatement
Enregistrez les journaux SQL pour faciliter l'analyse SQL ;
Mise en cache des champs fermés, les modifications des champs de la table de données ne sont pas affectées par la mise en cache ; vérifie strictement la casse des fichiers (même sur les plates-formes Windows) pour vous aider à détecter à l'avance les problèmes de déploiement Linux ; être facilement utilisé à différentes étapes du processus de développement, y compris dans toutes les situations requises telles que le développement, les tests et la démonstration, différents modes d'application peuvent configurer des fichiers de configuration de projet indépendants. 10. Quels modes de configuration sont pris en charge dans TP ? Priorité? Réponse : ThinkPHP a créé son propre mode de configuration hiérarchique unique dans la configuration du projet. Son niveau de configuration se reflète dans : Configuration conventionnelle->Configuration du projet->Configuration de débogage->Groupe. configuration->Configuration étendue->Configuration dynamique Ce qui précède est l'ordre de chargement des fichiers de configuration, car la configuration suivante écrasera la configuration précédente du même nom (sans prendre effet), donc l'ordre de priorité est de droite à gauche. 11. Quels sont les modèles d'URL dans TP ? Quelle est la valeur par défaut ? Réponse : ThinkPHP prend en charge quatre modes d'URL, qui peuvent être définis en définissant le paramètre URL_MODEL, notamment le mode normal, PATHINFO, REWRITE et le mode de compatibilité. Le mode par défaut est : mode PATHINFO, définissez URL_MODEL sur 112 Quelles sont les variables système dans TP ? Comment obtenir les variables système ? Réponse : Comment obtenir les variables système : Il vous suffit d'appeler la méthode suivante dans Action : $this->Nom de la méthode ("Nom de la variable",["Méthode de filtrage"],["Valeur par défaut"])13. Quelle est la différence entre la fonction D et la fonction M dans le framework ThinkPHP ? Réponse : La méthode M instancie le modèle sans que l'utilisateur définisse une classe de modèle pour chaque table de données. La méthode D peut détecter automatiquement la classe de modèle personnalisée. Si une classe de modèle personnalisée existe, la classe de modèle personnalisée sera instanciée. Sinon, la classe de modèle personnalisée sera instanciée, la méthode M sera automatiquement appelée pour instancier la classe de base Model. Dans le même temps, les modèles instanciés ne seront pas instanciés à plusieurs reprises (mode cas unique). Retour en haut5. Moteur de modèles intelligents 1. Quelle est la différence entre la compilation et la mise en cache ? Le processus de compilation de smarty consiste à prendre le modèle et à remplacer les balises à l'intérieur par le code php correspondant. C'est la compilation de smarty. En fait, c'est le processus de mélange de php. et html Le cache de Smarty doit être activé manuellement. Le cache de Smarty doit exécuter le fichier compilé et générer une page html statique en même temps. Lorsque vous visiterez à nouveau, vous y accéderez. le fichier html. Donc en terme d'efficacité, c'est plus élevé 2. Qu'est-ce que smarty Quels sont les avantages de Smarty Smarty est un moteur de template PHP ? écrit en PHP , le but est de séparer le programme PHP de l'artiste, de sorte que lorsque le programmeur modifie le contenu logique du programme, cela n'affecte pas la conception de la page de l'artiste, et lorsque l'artiste re-modifie la page, cela n'affecte pas la logique du programme. Ceci est important dans la coopération multi-personnes. C'est particulièrement important dans le projet. (Il est également facile de développer des programmes multi-styles) Avantages de Smarty 1. Rapide : par rapport aux autres moteurs de modèles. 2. Type compilé : Un programme écrit en smarty doit être compilé dans un fichier PHP de technologie non-modèle au moment de l'exécution3 Technologie de mise en cache : elle peut mettre en cache le fichier HTML que l'utilisateur voit finalement dans une page HTML statique
4. Technologie de plug-in : smarty peut personnaliser les plug-ins.
Lieux où smarty ne convient pas
1. Contenu qui doit être mis à jour en temps réel. Par exemple, comme l'affichage des stocks, cela nécessite des mises à jour fréquentes des données. 2. Petits projets. Des petits projets qui nécessitent à la fois un artiste et un programmeur du fait de leur simplicité
3. Utilisez {$smarty} pour conserver les variables dans le modèle
{$smarty.get.page} //Similaire à l'accès à $_GET[page]
{ dans un script php smarty.cookies.}
{smarty.post.}
{smarty.session.}
{smarty.server.}
4. Accéder aux variables en php dans les modèles
Il existe deux types de constantes système et de constantes personnalisées dans les scripts php. Ces deux constantes sont également accessibles dans les modèles Smarty et ne sont pas obligatoires. Attribuées depuis php. , la valeur de la constante peut être sortie directement tant que la variable est conservée via {$smarty}. Exemple de sortie de constantes dans des modèles :
{$smarty.const._MY_CONST_VAL}
{$smarty.const.__FILE__}
5. modificateur
{$var|modifier1|modifier2|.....}
<{$str} >
<{$str|capitalize}><{*La première lettre est en majuscule*}>
<{$str|upper }>< ;{*tout en majuscule*}>
<{$str|inférieur}><{*tout en minuscule*}>
;{$str|lower|upper}><{*toutes en majuscules, ajustées de gauche à droite*}>
<{$leg|truncate}> ;<{ *Interception de chaîne, 80 caractères par défaut*}>
<{$leg|truncate:10}><{*Interception de chaîne, 10 premiers caractères, dont... trois caractères *}>
6. Lorsque php interroge la base de données mysql, des caractères tronqués apparaissent lors de l'interrogation des résultats chinois. Comment le résoudre ? ? ? ?
1. Propriétés du fichier (enregistrer sous)
2. Méta du fichier (lors de la configuration de l'analyse du navigateur)
3. Paramètres d'encodage lors de la connexion à la base de données
4. Utilisez la fonction d'en-tête dans le fichier PHP pour déterminer l'encodage
.
7. Mécanisme de mise en cache
Si la mise en cache est activée, smarty générera une page html statique en même temps si elle n'expire pas dans le délai imparti, lorsque vous visiterez à nouveau, la page que vous avez visitée sera Il s'agit simplement d'un fichier HTML, ce qui réduit le besoin de lire la base de données, donc en termes d'efficacité, il est plus élevé.
8. Modèle d'affectation et de chargement intelligent
$Smarty->assign(name,value)
$Smarty->display (' index.html')
9. À quoi sert la technologie des modèles intelligents ?
Afin de séparer le php et le html, les artistes et les programmeurs doivent effectuer leurs propres tâches sans interférer les uns avec les autres.
10. Quelles sont les principales configurations de smarty ?
1. Introduisez smarty.class.php ;
2. Instanciez l'objet smarty ;
3. 4 . Re-modifiez le chemin du fichier compilé par défaut ;
5. Re-modifiez le chemin du fichier de configuration par défaut ;
6.
7. Vous pouvez définir s'il faut activer le cache.
8. Vous pouvez définir les délimiteurs gauche et droit.
11. À quels détails devez-vous faire attention lorsque vous utilisez smarty ?
Smarty est un moteur de modèles basé sur le concept MVC. Il divise un programme de page en deux parties pour la mise en œuvre : la couche de visualisation et la couche de contrôle
En d'autres termes, la technologie smarty combine les deux. Interface utilisateur utilisateur avec code séparé du code php.
De cette manière, les programmeurs et les artistes peuvent exercer leurs fonctions sans interférer les uns avec les autres.
12. Faites attention aux problèmes suivants lorsque vous utilisez smarty :
1. Configurez correctement smarty. Il faut principalement instancier l'objet smarty et configurer le chemin du fichier modèle smarty
2 Utiliser assign assign et display pour afficher la page dans la page php
3. Le code php est autorisé dans la section du fichier modèle smarty, tous les commentaires, variables et fonctions doivent être inclus dans le délimiteur.
A.{}
B. pour chaque
C si autre
D.
Retour en haut 6. Système de développement secondaire (DEDE, ecshop) : 1. Compréhension du développement secondaire Le développement secondaire, en termes simples, signifie personnaliser et modifier les logiciels existants, étendre les fonctions et obtenir les fonctions souhaitées. De manière générale, le cœur du système d'origine ne sera pas modifié. 2. MVC Traitement des données du modèle (modèle). Afficher l'affichage du modèle. Le contrôleur contrôle le processus. Quel est le concept de MVC ? Quelles sont les tâches principales de chaque niveau ? MVC (Model-View-Controller) est un modèle de conception de logiciel ou une idée de programmation. M fait référence à la couche Modèle, V est la couche Vue (couche d'affichage ou interface utilisateur) et C est la couche Contrôleur. Le but de l'utilisation de mvc est de séparer M et V, afin qu'un programme puisse facilement utiliser différentes interfaces utilisateur.Dans le développement de sites Web, la couche
modèle est généralement responsable de l'ajout, de la suppression, de la modification et de la vérification des informations des tables de base de données, la couche
vue est responsable de l'affichage du contenu de la page et la
La couche contrôleur est M et V jouent un rôle régulateur. La couche contrôleur décide quelle méthode et quelle classe de modèle appeler. Après l'exécution de
, la couche contrôleur décide quelle couche de vue attribuer. résultat à.
3. Certains avertissements et erreurs apparaissent lors de l'accès au programme de développement secondaire après l'installation
En fonction des erreurs, modifiez les paramètres de configuration du serveur et Baidu
4 . Fonctions, remplacement de modèles, ajout et modification de fonctions
En fait, il s'agit de l'utilisation d'applications orientées objet, et le remplacement de modèles s'apparente à l'utilisation de smarty
5. Quels éléments de développement secondaire ont été utilisés ? Dedecms phpcms ecshop, en gros si vous avez de bonnes bases, cela ne posera aucun problème pour apprendre. 6. Vaut-il mieux faire du développement primaire ou du développement secondaire comme PHP ? Généralement, les petites et moyennes entreprises utilisent le système cms pour le développement secondaire, le tout dans un souci d'efficacité. Bien sûr, si vous souhaitez tout développer en même temps, ce n'est pas un problème, à condition que vous sachiez utiliser le framework et que vous disposiez de suffisamment de temps pour développer en équipe pour éviter les problèmes de droits d'auteur. 7. Dans le processus de développement secondaire, comment les accès aux méthodes entre plusieurs classes sont-ils transmis ? Il ne s'agit pas d'un héritage de classe mais d'une combinaison d'objets. Passez les objets instanciés via global 8. Si dedecms change de répertoire, un certain élément en arrière-plan ne peut pas être saisi. .Comment le résoudre ? Modifiez les paramètres du noyau d'arrière-plan par le nom du répertoire du projet actuel 9. Comprenez-vous le modèle personnalisé dans dedecms ? Dans le système DreamWeaver, il existe le concept de modèle de contenu. Différents modèles de contenu peuvent être utilisés pour créer des sites avec différentes formes de contenu. Le système est livré avec les modèles suivants : articles ordinaires, albums photo, logiciels et. produits. , informations classifiées, sujets spéciaux. Grâce au modèle propre du système, nous pouvons l'utiliser pour créer différents types de sites. Par exemple, vous pouvez utiliser un atlas pour créer un site d'images et utiliser un modèle logiciel pour créer un site de téléchargement de logiciels. Bien sûr, les modèles ci-dessus fournis avec le système sont appelés modèles de système. Les utilisateurs peuvent définir eux-mêmes certains modèles, tels que des livres, des albums de musique, etc. Ce n'est qu'en personnalisant ces modèles qu'ils peuvent créer des sites avec plus de contenu. formes. Cela équivaut à ajouter automatiquement la structure du tableau pour s'adapter aux changements des besoins actuels 10. Dans les concepts, la conception et l'utilisation des modèles, vous devez comprendre. les quelques concepts suivants 1. Modèle de section (couverture) : fait référence au modèle utilisé par la page d'accueil du site Web ou le canal de couverture des colonnes les plus importantes. Il est généralement nommé avec "index_identification ID. .htm". De plus, l'utilisateur Pour les pages individuelles définies individuellement ou les balises personnalisées, vous pouvez également choisir de prendre en charge les balises de modèle de section. S'il est pris en charge, le système utilisera le moteur de balise de modèle de section pour analyser avant de sortir le contenu ou de générer un fichier spécifique. 2. Modèle de liste : fait référence au modèle de liste de tous les articles dans une certaine colonne du site Web, généralement nommés avec "list_identification ID.htm". 3. Modèle de fichier : représente le modèle de la page de visualisation du document, tel que le modèle d'article, généralement nommé avec "article_identification ID.htm". 4. Autres modèles : Le système général comprend généralement des modèles : modèle de page d'accueil, modèle de recherche, modèle de fonction de compilation RSS, JS, etc. De plus, les utilisateurs peuvent également personnaliser un modèle pour créer n'importe quel document. 11. Combien de balises sont utilisées dans dede ? Les balises de contenu de liste ne peuvent être utilisées que dans leur portée, les balises de liste ne peuvent être utilisées que dans des listes et les balises de contenu ne peuvent être utilisées que dans les balises de contenu. Les balises globales peuvent être utilisées dans toutes les pages 12. Familiarisé avec les bibliothèques de classes courantes (par exemple : dedesql.class.php) ; familier avec les bibliothèques de fonctions système (common.func.php) ; fichiers d'entrée front-end (common.inc.php) Retour en haut7 Développement de la plateforme publique WeChat1. Mécanisme de fonctionnement de WeChat Quelle langue est utilisée pour communiquer entre le compte officiel et php : Xml Weixin.php est Comment recevoir les données du compte public : $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];//Recevoir des données XML 2 . Type de message WeChat propose actuellement 7 types de messages de base, à savoir : (1) message texte (texte) (2) message photo (image) ; 🎜>(3) Voix (voix)
(4) Vidéo (vidéo)
(5) Localisation (localisation)
(6) Message de lien ; (lien);
(7) Type de poussée d'événement (événement)
. Maîtrisez le format de transfert de données lors de l'envoi de différents types de messages
4. La fonction pour lire l'intégralité du fichier dans une chaîne est
File_get_contents
5. Fonctions couramment utilisées
La fonction qui analyse les données XML en objets est
simplexml_load_string()
La fonction qui convertit une chaîne en tableau est ___explose__________, et la fonction qui convertit un tableau en chaîne est ____implode________.
La chaîne qui code la chaîne URL est ____urlencode________.
6. La fonction de la fonction Sprintf
Vous pouvez consulter le manuel pour cela.
7. Pourquoi le compte officiel WeChat n'est-il pas en mesure de fournir des services ?
1. Raison du réseau, raison de l'interface de données
2. Erreur de code, comment deviner la raison
Vérifiez où vous l'avez modifié, si le code est correct
Vous pouvez exporter les données et y jeter un œil. Utilisez php pour gérer les fichiers
$myfile = fopen("newfile.txt", "w");
$txt ="aaaaaaaaaa";
fwrite($myfile, $txt);
fclose($myfile);
8. Push d'événement de menu personnalisé
Cliquez sur
Cliquez sur le lien de saut
Scannez le code QR pour pousser l'événement
Scannez le code QR pour pousser et apparaître
Faites apparaître le système pour prendre des photos et publier des photos
L'événement qui fait apparaître l'expéditeur de l'album photo WeChat
L'événement qui fait apparaître le sélecteur de localisation géographique
9 Le rôle du jeton
Vérification du mécanisme de sécurité, utilisé pour le serveur WeChat et le serveur PHP Vérification de la sécurité entre
10. Le rôle d'Appid et secrect
Lors de la demande de l'interface API (comme l'opération de menu), vous devez passer le appid et secrect pour obtenir le code d'autorisation de l'application
Retour en haut
1. en tant que direction, maîtrisant le moteur de modèles intelligents, le framework ThinkPHP, le développement de plateforme publique WeChat, DEDE, ecshop et d'autres systèmes de développement secondaires, avoir une certaine compréhension de la base de données orientée objet, maîtrisant MYSQL, MSSQL et d'autres bases de données familiarisées avec PHP ; développement sous Linux
2. Technologie front-end : maîtrise de la mise en page Web p+CSS, javascript, framework JQuery, technologie AJAX, traitement d'images Photoshop
Un an d'expérience en développement de projets. , en utilisant smarty pour développer 'XXXXXXX', ThinkPHP pour développer 'XXXXXXXX' et en utilisant la plateforme publique WeChat. Le compte officiel du 'Employment Service Network' a utilisé le système Dreamweaver pour développer des sites Web d'entreprise, etc.
La combinaison optimale de l'environnement d'exécution de PHP est Apache+MySQL+PHP. Cet environnement d'exécution peut être configuré sur différents systèmes d'exploitation (tels que Windows, Linux, etc.) et n'est donc pas limité par le système d'exploitation. cela s'appelle multiplateforme
2. Combien existe-t-il de méthodes de soumission de données dans le développement WEB ? Quelle est la différence ? Quelle méthode Baidu utilise-t-il ?
Méthodes Get et Post
Différences : 1. Get obtient les données du serveur, Post transmet les données au serveur
2 La valeur transmise par Get est visible dans le fichier. url et post Invisible dans l'url
4. La valeur transmise par Get est généralement inférieure à 2 Ko, et la taille de la valeur transmise par post peut être définie dans php.ini
5. La sécurité de get n'est pas faible et la sécurité de post Plus élevée, mais l'efficacité d'exécution est supérieure à Post
Suggestions :
1 Le type get est moins sécurisé que le type Post. Il contient des informations confidentielles. Il est recommandé d'utiliser le type de soumission de données Post ;
2. Il est recommandé d'utiliser la méthode Get pour la requête de données ; data; La méthode get utilisée par Baidu, car elle est visible à partir de son URL 3. Comprendre quels frameworks, moteurs de modèles, systèmes, etc. de PHP Framework : Il existe de nombreux frameworks, tels que zendframe, CI, Yii, etc. Ce que nous avons appris, c'est thinkphpMoteur de modèles : Il y en a aussi Il y en a beaucoup dans les manuels. Ce que nous avons appris, c'est le smarty<.>système : il en existe beaucoup, comme : les produits de Kangsheng (uchome, supesite, discuzX, etc.), le système Empire, DEDE (Dream Weaver), ecshop, etc. , ce que nous avons appris c'est DEDECMS, Ecshop
4. Quelles sont les technologies web front-end que vous maîtrisez ?
Maîtrise de la mise en page Web p+CSS, JavaScript, du framework jQuery, du traitement d'images Photoshop
5 Quels sont les avantages d'AJAX ?
ajax est une technologie de transmission asynchrone qui peut être implémentée via javascript ou le framework JQuery pour obtenir un rafraîchissement partiel, ce qui réduit la pression sur le serveur et améliore l'expérience utilisateur
6. -une sécurité C'est très important pour un ensemble de programmes. Veuillez me dire à quels mécanismes de sécurité il faut prêter attention pendant le développement ?
①Empêcher la soumission à distance ; ②Empêcher l'injection SQL et filtrer les codes spéciaux ; ③Empêcher l'inondation de la machine d'enregistrement et utiliser des codes de vérification ;
7. Dans le développement de programmes, comment améliorer les performances du programme Opérationnel. efficacité?
① Optimisez les instructions SQL, essayez de ne pas utiliser select * dans les instructions de requête, utilisez quel champ pour vérifier quel champ ; utilisez moins de sous-requêtes et pouvez être remplacé par des connexions de table ; ② Créez des index dans les données ; tables ; ③ Droit Générer un cache pour les données fréquemment utilisées dans le programme ;
8. PHP peut-il être utilisé avec d'autres bases de données ?
PHP与MYSQL数据库是最优搭配,当然PHP也可以去其它的数据库搭配使用,例如MSSQL等,PHP中预留了操作MSSQL的函数,只要开启就可以使用
9. 现在编程中经常采取MVC三层结构,请问MVC分别指哪三层,有什么优点?
MVC三层分别指:业务模型、视图、控制器,由控制器层调用模型处理数据,然后将数据映射到视图层进行显示,优点是:①可以实现代码的重用性,避免产生代码冗余;②M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式
10. 对json数据格式的理解?
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,json数据格式固定,可以被多种语言用作数据的传递
PHP中处理json格式的函数为json_decode( string $json [, bool $assoc ] ) ,接受一个 JSON格式的字符串并且把它转换为PHP变量,参数json待解码的json string格式的字符串。assoc当该参数为TRUE时,将返回array而非object;
Json_encode:将PHP变量转换成json格式
14. PHP处理数组的常用函数?(重点看函数的‘参数’和‘返回值’)
①array()创建数组;②count()返回数组中元素的数目;③array_push()将一个或多个元素插入数组的末尾(入栈);④array_column()返回输入数组中某个单一列的值;⑤array_combine()通过合并两个数组来创建一个新数组;⑥array_reverse()以相反的顺序返回数组;⑦array_unique()删除数组中的重复值;⑧in_array()检查数组中是否存在指定的值;
15. PHP处理字符串的常用函数?(重点看函数的‘参数’和‘返回值’)
①trim() supprime les caractères vides et autres caractères des deux côtés de la chaîne ; ②substr_replace() remplace une partie de la chaîne par une autre chaîne ; ③substr_count() compte le nombre de fois qu'une sous-chaîne apparaît dans la chaîne ; une partie de la chaîne ; ⑤strtolower() convertit la chaîne en lettres minuscules ; ⑥strtoupper() convertit la chaîne en lettres majuscules ; ⑦strtr() convertit les caractères spécifiques de la chaîne ⑧strrchr() trouve la chaîne dans un autre caractère ; string; ⑨ strstr() trouve la première occurrence d'une chaîne dans une autre chaîne (sensible à la casse) ; strrev() inverse la chaîne ; strlen() renvoie la longueur de la chaîne ; str_replace() Remplace certains caractères dans la chaîne (casse). -sensitive) ; print() génère une ou plusieurs chaînes ; explosive() divise la chaîne en un tableau ; is_string() détecte si la variable est une chaîne ; strip_tags() démarre à partir de Supprimer les balises HTML d'une chaîne ; une fonction utilisée pour intercepter le chinois et l'anglais
16. Fonctions couramment utilisées pour le temps de traitement PHP ? (Focus sur les « paramètres » et la « valeur de retour » de la fonction)
date_default_timezone_get() renvoie le fuseau horaire par défaut.
date_default_timezone_set() définit le fuseau horaire par défaut.
date() formate l'heure/la date locale.
getdate() renvoie les informations de date/heure.
gettimeofday() renvoie les informations sur l'heure actuelle.
microtime() renvoie le nombre de microsecondes dans l'heure actuelle.
mktime() renvoie l'horodatage Unix d'une date.
strtotime() analyse toute description de date ou d'heure de texte anglais dans un horodatage Unix.
time() renvoie l'horodatage Unix de l'heure actuelle.
17. Quelles sont les fonctions courantes utilisées en PHP pour traiter les bases de données ? (Concentrez-vous sur les « paramètres » et la « valeur de retour » de la fonction)
Veuillez vous référer au manuel PHP et lisez-le attentivement. Cet élément est très important
Quels sont les éléments courants. utilisé des fonctions pour exploiter des fichiers en PHP ? (Concentrez-vous sur les « paramètres » et la « valeur de retour » de la fonction)
①Ouvrez le fichier ; ②Supprimez le fichier ; ④Écrivez le fichier ; ⑤Modifiez le fichier ; ⑥Fermez le fichier ; . Etc., cet élément est très important. Il est souvent utilisé pour générer du cache ou des fichiers statiques au travail. Veuillez vous référer au manuel PHP et le lire attentivement
19. (dossiers) ? (Concentrez-vous sur les « paramètres » et la « valeur de retour » de la fonction)
①Ouvrez le répertoire ; ②Supprimez le répertoire ; ④Créez le répertoire ; ⑤Modifiez le répertoire ; est très important, au travail, vous créez ou supprimez souvent des répertoires pour les fichiers téléchargés, et créez ou supprimez des répertoires pour les caches et les pages statiques. Veuillez vous référer au manuel PHP et lire attentivement
.
Lors de la définition et de l'implémentation d'une classe, vous pouvez le faire sur la base d'une classe existante. Vous pouvez utiliser le contenu défini par cette classe existante comme votre propre contenu, et vous pouvez ajouter du nouveau contenu ou le modifier. La méthode est rendue plus adaptée aux besoins particuliers, c'est-à-dire l'héritage. L'héritage est un mécanisme permettant aux sous-classes de partager automatiquement les données et les méthodes de la classe parent. Il s'agit d'une relation entre les classes qui améliore la réutilisabilité et l'évolutivité du logiciel.
Polymorphisme :
Le polymorphisme signifie que le type spécifique pointé par la variable de référence définie dans le programme et l'appel de méthode émis via la variable de référence ne sont pas déterminés lors de la programmation, mais dans le programme. est déterminé pendant l'exécution qu'une variable de référence pointera vers un objet d'instance de quelle classe. L'appel de méthode émis par la variable de référence est une méthode implémentée dans quelle classe. Cela doit être déterminé lors de l'exécution du programme.
Abstraction :
L'abstraction consiste à découvrir les similitudes et les points communs de certaines choses, puis à classer ces choses dans une classe. Ce cours ne considère que les similitudes et les points communs de ces choses, et Will. ignorez les aspects qui ne sont pas pertinents par rapport au sujet et à l'objectif actuels et concentrez-vous sur les aspects qui sont pertinents par rapport à l'objectif actuel. Par exemple, si vous voyez une fourmi et un éléphant et que vous pouvez imaginer à quel point ils se ressemblent, c’est de l’abstraction.
6. Quels sont les concepts et les différences entre les classes abstraites et les interfaces ?
Réponse : Classe abstraite : Il s'agit d'une classe spéciale qui ne peut pas être instanciée et ne peut être utilisée que comme classe parent d'autres classes. Déclaré à l'aide du mot-clé abstract.
C'est une classe abstraite spéciale et une classe spéciale qui utilise la déclaration d'interface.
(1) Les opérations des classes abstraites sont implémentées via le mot-clé d'héritage extends, et l'utilisation des interfaces est implémentée via le mot-clé Implements.
(2) Il y a des membres de données dans la classe abstraite, qui peuvent réaliser l'encapsulation de données, mais l'interface n'a pas de membres de données.
(3) Les classes abstraites peuvent avoir des constructeurs, mais les interfaces n'ont pas de constructeurs.
(4) Les méthodes des classes abstraites peuvent être modifiées avec les mots-clés private, protected et public (les méthodes abstraites ne peuvent pas être privées), tandis que les méthodes des interfaces ne peuvent être modifiées qu'avec le mot-clé public.
(5) Une classe ne peut hériter que d'une seule classe abstraite, et une classe peut implémenter plusieurs interfaces en même temps.
(6) Une classe abstraite peut avoir un code d'implémentation pour les méthodes membres, mais une interface ne peut pas avoir de code d'implémentation pour les méthodes membres.
7. Qu'est-ce qu'un constructeur, qu'est-ce qu'un destructeur et quelle est sa fonction ?
Réponse : Le constructeur (méthode) est la première méthode automatiquement appelée par l'objet après la création de l'objet. Il existe dans chaque classe déclarée et constitue une méthode membre spéciale. Sa fonction est d'effectuer certaines tâches d'initialisation. En Php, __construct() est utilisé pour déclarer la méthode constructeur, et une seule peut être déclarée.
Le destructeur (méthode) est exactement l'opposé du constructeur. C'est la dernière méthode automatiquement appelée par l'objet avant sa destruction. Il s'agit d'un contenu nouvellement ajouté dans PHP5 qui est utilisé pour effectuer certaines opérations spécifiques avant de détruire un objet, comme la fermeture de fichiers et la libération de mémoire.
8. Comment surcharger la méthode de la classe parent, avec des exemples
Réponse : Surcharger signifie remplacer la méthode de la classe parent, c'est-à-dire utiliser la méthode dans la sous-classe Le remplacement d'une méthode héritée de la classe parent est également appelé remplacement de méthode.
La clé pour remplacer la méthode de la classe parent est de créer la même méthode dans la classe parent de la sous-classe, y compris le nom de la méthode, les paramètres et le type de valeur de retour. En PHP, seuls les noms des méthodes doivent être identiques.
9. Quelles sont les méthodes magiques couramment utilisées ? Exemple
Réponse : PHP stipule que les méthodes commençant par deux traits de soulignement (__) sont réservées comme méthodes magiques, il est donc recommandé que le nom de votre fonction ne commence pas par __, sauf s'il s'agit de surcharger une méthode magique existante.
__construct() est automatiquement appelée lors de l'instanciation d'une classe.
__destruct() est automatiquement appelée lorsque l'objet de classe est utilisé.
__set() est appelé lors de l'attribution d'une valeur à une propriété non définie.
__get() est appelé lorsque des propriétés non définies sont appelées.
__isset() sera appelé lors de l'utilisation de la fonction isset() ou empty().
__unset() sera appelé lorsque unset() est utilisé.
__sleep() est appelé lors de la sérialisation à l'aide de Serialize.
__wakeup() est appelé lors de la désérialisation à l'aide de unserialize.
__call() est appelée lors de l'appel d'une méthode qui n'existe pas.
__callStatic() appelle une méthode statique qui n'existe pas.
__toString() est appelée lors de la conversion d'un objet en chaîne. Comme l'écho.
__invoke() Appelé lors de la tentative d'invocation d'un objet en tant que méthode.
__set_state() est appelé lors de l'utilisation de la fonction var_export(). Accepte un paramètre de tableau.
__clone() est appelée lors de l'utilisation de clone pour copier un objet.
10. Que représentent respectivement les trois mots-clés $this et self et parent ? Dans quelles situations est-il utilisé ?
Réponse : $cet objet actuel
classe auto-actuelle
classe parent parent de la classe actuelle
$ceci est utilisé dans la classe actuelle, utilisez -> ;Propriétés et méthodes d'appel.
self est également utilisé dans la classe actuelle, mais il doit être appelé en utilisant ::.
parent est utilisé dans les cours.
11. Comment définir des constantes dans une classe, comment appeler des constantes dans une classe et comment appeler des constantes en dehors d'une classe.
Réponse : Les constantes de la classe sont également des constantes membres. Une constante est une quantité qui ne change pas et est une valeur constante.
Définissez des constantes à l'aide du mot-clé const.
例如:const PI = 3.1415326;
无论是类内还是类外,常量的访问和变量是不一样的,常量不需要实例化对象,
访问常量的格式都是类名加作用域操作符号(双冒号)来调用。
即:类名 :: 类常量名;
12、 作用域操作符::如何使用?都在哪些场合下使用?
答:调用类常量
调用静态方法
13、__autoload()方法的工作原理是什么?
答:使用这个魔术函数的基本条件是类文件的文件名要和类的名字保持一致。
当程序执行到实例化某个类的时候,如果在实例化前没有引入这个类文件,那么就自动执行__autoload()函数。
这个函数会根据实例化的类的名称来查找这个类文件的路径,当判断这个类文件路径下确实存在这个类文件后
就执行include或者require来载入该类,然后程序继续执行,如果这个路径下不存在该文件时就提示错误。
使用自动载入的魔术函数可以不必要写很多个include或者require函数。
返回顶部
1、常见的PHP框架
答:thinkPHP
yii
ZendFramework
CakePhp
sy
2、如何理解TP中的单一入口文件?
答:ThinkPHP采用单一入口模式进行项目部署和访问,无论完成什么功能,一个项目都有一个统一(但不一定是唯一)的入口。应该说,所有项目都是从入口文件开始的,并且所有的项目的入口文件是类似的,入口文件中主要包括:
定义框架路径、项目路径和项目名称(可选)
定义调试模式和运行模式的相关常量(可选)
载入框架入口文件(必须)
3、ThinkPHP中的MVC分层是什么?(理解)
答:MVC 是一种将应用程序的逻辑层和表现层进行分离的方法。ThinkPHP 也是基于MVC设计模式的。MVC只是一个抽象的概念,并没有特别明确的规定,ThinkPHP中的MVC分层大致体现在:
模型(M):模型的定义由Model类来完成。
控制器(C):应用控制器(核心控制器App类)和Action控制器都承担了控制器的角色,Action控制器完成业务过程控制,而应用控制器负责调度控制。
视图(V):由View类和模板文件组成,模板做到了100%分离,可以独立预览和制作。
但实际上,ThinkPHP并不依赖M或者V ,也就是说没有模型或者视图也一样可以工作。甚至也不依赖C,这是因为ThinkPHP在Action之上还有一个总控制器,即App控制器,负责应用的总调度。在没有C的情况下,必然存在视图V,否则就不再是一个完整的应用。
总而言之,ThinkPHP的MVC模式只是提供了一种敏捷开发的手段,而不是拘泥于MVC本身。
5、如何理解 ThinkPHP 3.0 架构三(核心 + 行为 + 驱动)中的行为?
答:核心 + 行为 + 驱动
TP官方简称为:CBD
核心(Core):就是框架的核心代码,不可缺少的东西,TP本身是基于MVC思想开发的框架。
行为(Behavior) :行为在新版ThinkPHP的架构里面起着举足轻重的作用,在系统核心之上,设置了很多标签扩展位,而每个标签位置可以依次执行各自的独立行为。行为扩展就因此而诞生了,而且很多系统功能也是通过内置的行为扩展完成的,所有行为扩展都是可替换和增加的,由此形成了底层框架可组装的基础。
驱动( Driver ):数据库驱动、缓存驱动、标签库驱动和模板引擎驱动,以及外置的类扩展。
框架,即framework。其实就是某种应用的半成品,就是一组组件,供你选用完成你自己的系统。简单说就是使用别人搭好的舞台,你来做表演。而且,框架一般是成熟的,不断升级的软件。
6、什么是惯例配置?
答:惯例配置上一页下一页惯例重于配置是系统遵循的一个重要思想,系统内置有一个惯例配置文件(位于系统目录下面的Conf\convention.php),按照大多数的使用对常用参数进行了默认配置。所以,对应用项目的配置文件,往往只需要配置和惯例配置不同的或者新增的配置参数,如果你完全采用默认配置,甚至可以不需要定义任何配置文件。
惯例配置文件会被系统自动加载,无需在项目中进行加载。
7、什么是SQL注入?(理解)
Réponse : les attaques par injection SQL sont l'un des moyens couramment utilisés par les pirates pour attaquer les bases de données. Certains programmeurs ne jugent pas la légalité des données saisies par l'utilisateur lors de l'écriture du code. L'injecteur peut saisir un code de requête de base de données dans le formulaire et le soumettre. Le programme rassemblera les informations soumises pour générer une instruction SQL complète, et le serveur le sera. trompé. Exécutez la commande SQL malveillante. L'injecteur obtient avec succès certaines données sensibles en fonction des résultats renvoyés par le programme et contrôle même l'ensemble du serveur. Il s'agit d'une injection SQL.
8. Comment ThinkPHP empêche-t-il l'injection SQL ? (Comprendre)
Réponse : (1) Essayez d'utiliser des tableaux pour les conditions de requête, ce qui est un moyen plus sûr
(2) Si vous devez utiliser des conditions de requête de chaîne, utilisez le mécanisme de prétraitement ;
(3) Activez la vérification du type de champ de données et vous pouvez forcer la conversion des types de données numériques ; (la vérification du type de champ est obligatoire depuis la version 3.1)
(4) Utilisez la vérification automatique et mécanismes de saisie semi-automatique pour le filtrage personnalisé des applications ;
(5) Utiliser la vérification du type de champ, la vérification automatique et les mécanismes de saisie semi-automatique pour éviter la saisie de données malveillantes.
9. Comment activer le mode débogage ? Quels sont les avantages du mode débogage ?
Réponse : L'activation du mode débogage est très simple. Il vous suffit d'ajouter une ligne de code de définition constante au fichier d'entrée :
//Activer le mode débogage
definition('APP_DEBUG', true);
//Charger le fichier d'entrée du framework
require './ThinkPHP/ThinkPHP.php' ;
in Après avoir terminé la phase de développement et déployé dans l'environnement de production, il vous suffit de supprimer le code de définition du mode débogage pour passer en mode déploiement. Après avoir activé le mode de débogage, le système chargera d'abord le fichier de configuration de débogage par défaut du système, puis chargera le fichier de configuration de débogage du projet. Les avantages du mode de débogage sont :
Activer la journalisation, n'importe quel. les informations d'erreur et les informations de débogage seront enregistrées en détail pour faciliter le débogage ;
Désactivez le cache des modèles, les modifications du modèle peuvent prendre effet immédiatement
Enregistrez les journaux SQL pour faciliter l'analyse SQL ;
Mise en cache des champs fermés, les modifications des champs de la table de données ne sont pas affectées par la mise en cache ; vérifie strictement la casse des fichiers (même sur les plates-formes Windows) pour vous aider à détecter à l'avance les problèmes de déploiement Linux ; être facilement utilisé à différentes étapes du processus de développement, y compris dans toutes les situations requises telles que le développement, les tests et la démonstration, différents modes d'application peuvent configurer des fichiers de configuration de projet indépendants. 10. Quels modes de configuration sont pris en charge dans TP ? Priorité? Réponse : ThinkPHP a créé son propre mode de configuration hiérarchique unique dans la configuration du projet. Son niveau de configuration se reflète dans : Configuration conventionnelle->Configuration du projet->Configuration de débogage->Groupe. configuration->Configuration étendue->Configuration dynamique Ce qui précède est l'ordre de chargement des fichiers de configuration, car la configuration suivante écrasera la configuration précédente du même nom (sans prendre effet), donc l'ordre de priorité est de droite à gauche. 11. Quels sont les modèles d'URL dans TP ? Quelle est la valeur par défaut ? Réponse : ThinkPHP prend en charge quatre modes d'URL, qui peuvent être définis en définissant le paramètre URL_MODEL, notamment le mode normal, PATHINFO, REWRITE et le mode de compatibilité. Le mode par défaut est : mode PATHINFO, définissez URL_MODEL sur 112 Quelles sont les variables système dans TP ? Comment obtenir les variables système ? Réponse : Comment obtenir les variables système : Il vous suffit d'appeler la méthode suivante dans Action : $this->Nom de la méthode ("Nom de la variable",["Méthode de filtrage"],["Valeur par défaut"])13. Quelle est la différence entre la fonction D et la fonction M dans le framework ThinkPHP ? Réponse : La méthode M instancie le modèle sans que l'utilisateur définisse une classe de modèle pour chaque table de données. La méthode D peut détecter automatiquement la classe de modèle personnalisée. Si une classe de modèle personnalisée existe, la classe de modèle personnalisée sera instanciée. Sinon, la classe de modèle personnalisée sera instanciée, la méthode M sera automatiquement appelée pour instancier la classe de base Model. Dans le même temps, les modèles instanciés ne seront pas instanciés à plusieurs reprises (mode cas unique). Retour en haut5. Moteur de modèles intelligents 1. Quelle est la différence entre la compilation et la mise en cache ? Le processus de compilation de smarty consiste à prendre le modèle et à remplacer les balises à l'intérieur par le code php correspondant. C'est la compilation de smarty. En fait, c'est le processus de mélange de php. et html Le cache de Smarty doit être activé manuellement. Le cache de Smarty doit exécuter le fichier compilé et générer une page html statique en même temps. Lorsque vous visiterez à nouveau, vous y accéderez. le fichier html. Donc en terme d'efficacité, c'est plus élevé 2. Qu'est-ce que smarty Quels sont les avantages de Smarty Smarty est un moteur de template PHP ? écrit en PHP , le but est de séparer le programme PHP de l'artiste, de sorte que lorsque le programmeur modifie le contenu logique du programme, cela n'affecte pas la conception de la page de l'artiste, et lorsque l'artiste re-modifie la page, cela n'affecte pas la logique du programme. Ceci est important dans la coopération multi-personnes. C'est particulièrement important dans le projet. (Il est également facile de développer des programmes multi-styles) Avantages de Smarty 1. Rapide : par rapport aux autres moteurs de modèles. 2. Type compilé : Un programme écrit en smarty doit être compilé dans un fichier PHP de technologie non-modèle au moment de l'exécution3 Technologie de mise en cache : elle peut mettre en cache le fichier HTML que l'utilisateur voit finalement dans une page HTML statique
4. Technologie de plug-in : smarty peut personnaliser les plug-ins.
Lieux où smarty ne convient pas
1. Contenu qui doit être mis à jour en temps réel. Par exemple, comme l'affichage des stocks, cela nécessite des mises à jour fréquentes des données. 2. Petits projets. Des petits projets qui nécessitent à la fois un artiste et un programmeur du fait de leur simplicité
3. Utilisez {$smarty} pour conserver les variables dans le modèle
{$smarty.get.page} //Similaire à l'accès à $_GET[page]
{ dans un script php smarty.cookies.}
{smarty.post.}
{smarty.session.}
{smarty.server.}
4. Accéder aux variables en php dans les modèles
Il existe deux types de constantes système et de constantes personnalisées dans les scripts php. Ces deux constantes sont également accessibles dans les modèles Smarty et ne sont pas obligatoires. Attribuées depuis php. , la valeur de la constante peut être sortie directement tant que la variable est conservée via {$smarty}. Exemple de sortie de constantes dans des modèles :
{$smarty.const._MY_CONST_VAL}
{$smarty.const.__FILE__}
5. modificateur
{$var|modifier1|modifier2|.....}
<{$str} >
<{$str|capitalize}><{*La première lettre est en majuscule*}>
<{$str|upper }>< ;{*tout en majuscule*}>
<{$str|inférieur}><{*tout en minuscule*}>
;{$str|lower|upper}><{*toutes en majuscules, ajustées de gauche à droite*}>
<{$leg|truncate}> ;<{ *Interception de chaîne, 80 caractères par défaut*}>
<{$leg|truncate:10}><{*Interception de chaîne, 10 premiers caractères, dont... trois caractères *}>
6. Lorsque php interroge la base de données mysql, des caractères tronqués apparaissent lors de l'interrogation des résultats chinois. Comment le résoudre ? ? ? ?
1. Propriétés du fichier (enregistrer sous)
2. Méta du fichier (lors de la configuration de l'analyse du navigateur)
3. Paramètres d'encodage lors de la connexion à la base de données
4. Utilisez la fonction d'en-tête dans le fichier PHP pour déterminer l'encodage
.
7. Mécanisme de mise en cache
Si la mise en cache est activée, smarty générera une page html statique en même temps si elle n'expire pas dans le délai imparti, lorsque vous visiterez à nouveau, la page que vous avez visitée sera Il s'agit simplement d'un fichier HTML, ce qui réduit le besoin de lire la base de données, donc en termes d'efficacité, il est plus élevé.
8. Modèle d'affectation et de chargement intelligent
$Smarty->assign(name,value)
$Smarty->display (' index.html')
9. À quoi sert la technologie des modèles intelligents ?
Afin de séparer le php et le html, les artistes et les programmeurs doivent effectuer leurs propres tâches sans interférer les uns avec les autres.
10. Quelles sont les principales configurations de smarty ?
1. Introduisez smarty.class.php ;
2. Instanciez l'objet smarty ;
3. 4 . Re-modifiez le chemin du fichier compilé par défaut ;
5. Re-modifiez le chemin du fichier de configuration par défaut ;
6.
7. Vous pouvez définir s'il faut activer le cache.
8. Vous pouvez définir les délimiteurs gauche et droit.
11. À quels détails devez-vous faire attention lorsque vous utilisez smarty ?
Smarty est un moteur de modèles basé sur le concept MVC. Il divise un programme de page en deux parties pour la mise en œuvre : la couche de visualisation et la couche de contrôle
En d'autres termes, la technologie smarty combine les deux. Interface utilisateur utilisateur avec code séparé du code php.
De cette manière, les programmeurs et les artistes peuvent exercer leurs fonctions sans interférer les uns avec les autres.
12. Faites attention aux problèmes suivants lorsque vous utilisez smarty :
1. Configurez correctement smarty. Il faut principalement instancier l'objet smarty et configurer le chemin du fichier modèle smarty
2 Utiliser assign assign et display pour afficher la page dans la page php
3. Le code php est autorisé dans la section du fichier modèle smarty, tous les commentaires, variables et fonctions doivent être inclus dans le délimiteur.
A.{}
B. pour chaque
C si autre
D.
Retour en haut 6. Système de développement secondaire (DEDE, ecshop) : 1. Compréhension du développement secondaire Le développement secondaire, en termes simples, signifie personnaliser et modifier les logiciels existants, étendre les fonctions et obtenir les fonctions souhaitées. De manière générale, le cœur du système d'origine ne sera pas modifié. 2. MVC Traitement des données du modèle (modèle). Afficher l'affichage du modèle. Le contrôleur contrôle le processus. Quel est le concept de MVC ? Quelles sont les tâches principales de chaque niveau ? MVC (Model-View-Controller) est un modèle de conception de logiciel ou une idée de programmation. M fait référence à la couche Modèle, V est la couche Vue (couche d'affichage ou interface utilisateur) et C est la couche Contrôleur. Le but de l'utilisation de mvc est de séparer M et V, afin qu'un programme puisse facilement utiliser différentes interfaces utilisateur.Dans le développement de sites Web, la couche
modèle est généralement responsable de l'ajout, de la suppression, de la modification et de la vérification des informations des tables de base de données, la couche
vue est responsable de l'affichage du contenu de la page et la
La couche contrôleur est M et V jouent un rôle régulateur. La couche contrôleur décide quelle méthode et quelle classe de modèle appeler. Après l'exécution de
, la couche contrôleur décide quelle couche de vue attribuer. résultat à.
3. Certains avertissements et erreurs apparaissent lors de l'accès au programme de développement secondaire après l'installation
En fonction des erreurs, modifiez les paramètres de configuration du serveur et Baidu
4 . Fonctions, remplacement de modèles, ajout et modification de fonctions
En fait, il s'agit de l'utilisation d'applications orientées objet, et le remplacement de modèles s'apparente à l'utilisation de smarty
5. Quels éléments de développement secondaire ont été utilisés ? Dedecms phpcms ecshop, en gros si vous avez de bonnes bases, cela ne posera aucun problème pour apprendre. 6. Vaut-il mieux faire du développement primaire ou du développement secondaire comme PHP ? Généralement, les petites et moyennes entreprises utilisent le système cms pour le développement secondaire, le tout dans un souci d'efficacité. Bien sûr, si vous souhaitez tout développer en même temps, ce n'est pas un problème, à condition que vous sachiez utiliser le framework et que vous disposiez de suffisamment de temps pour développer en équipe pour éviter les problèmes de droits d'auteur. 7. Dans le processus de développement secondaire, comment les accès aux méthodes entre plusieurs classes sont-ils transmis ? Il ne s'agit pas d'un héritage de classe mais d'une combinaison d'objets. Passez les objets instanciés via global 8. Si dedecms change de répertoire, un certain élément en arrière-plan ne peut pas être saisi. .Comment le résoudre ? Modifiez les paramètres du noyau d'arrière-plan par le nom du répertoire du projet actuel 9. Comprenez-vous le modèle personnalisé dans dedecms ? Dans le système DreamWeaver, il existe le concept de modèle de contenu. Différents modèles de contenu peuvent être utilisés pour créer des sites avec différentes formes de contenu. Le système est livré avec les modèles suivants : articles ordinaires, albums photo, logiciels et. produits. , informations classifiées, sujets spéciaux. Grâce au modèle propre du système, nous pouvons l'utiliser pour créer différents types de sites. Par exemple, vous pouvez utiliser un atlas pour créer un site d'images et utiliser un modèle logiciel pour créer un site de téléchargement de logiciels. Bien sûr, les modèles ci-dessus fournis avec le système sont appelés modèles de système. Les utilisateurs peuvent définir eux-mêmes certains modèles, tels que des livres, des albums de musique, etc. Ce n'est qu'en personnalisant ces modèles qu'ils peuvent créer des sites avec plus de contenu. formes. Cela équivaut à ajouter automatiquement la structure du tableau pour s'adapter aux changements des besoins actuels 10. Dans les concepts, la conception et l'utilisation des modèles, vous devez comprendre. les quelques concepts suivants 1. Modèle de section (couverture) : fait référence au modèle utilisé par la page d'accueil du site Web ou le canal de couverture des colonnes les plus importantes. Il est généralement nommé avec "index_identification ID. .htm". De plus, l'utilisateur Pour les pages individuelles définies individuellement ou les balises personnalisées, vous pouvez également choisir de prendre en charge les balises de modèle de section. S'il est pris en charge, le système utilisera le moteur de balise de modèle de section pour analyser avant de sortir le contenu ou de générer un fichier spécifique. 2. Modèle de liste : fait référence au modèle de liste de tous les articles dans une certaine colonne du site Web, généralement nommés avec "list_identification ID.htm". 3. Modèle de fichier : représente le modèle de la page de visualisation du document, tel que le modèle d'article, généralement nommé avec "article_identification ID.htm". 4. Autres modèles : Le système général comprend généralement des modèles : modèle de page d'accueil, modèle de recherche, modèle de fonction de compilation RSS, JS, etc. De plus, les utilisateurs peuvent également personnaliser un modèle pour créer n'importe quel document. 11. Combien de balises sont utilisées dans dede ? Les balises de contenu de liste ne peuvent être utilisées que dans leur portée, les balises de liste ne peuvent être utilisées que dans des listes et les balises de contenu ne peuvent être utilisées que dans les balises de contenu. Les balises globales peuvent être utilisées dans toutes les pages 12. Familiarisé avec les bibliothèques de classes courantes (par exemple : dedesql.class.php) ; familier avec les bibliothèques de fonctions système (common.func.php) ; fichiers d'entrée front-end (common.inc.php) Retour en haut7 Développement de la plateforme publique WeChat1. Mécanisme de fonctionnement de WeChat Quelle langue est utilisée pour communiquer entre le compte officiel et php : Xml Weixin.php est Comment recevoir les données du compte public : $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];//Recevoir des données XML 2 . Type de message WeChat propose actuellement 7 types de messages de base, à savoir : (1) message texte (texte) (2) message photo (image) ; 🎜>(3) Voix (voix)
(4) Vidéo (vidéo)
(5) Localisation (localisation)
(6) Message de lien ; (lien);
(7) Type de poussée d'événement (événement)
. Maîtrisez le format de transfert de données lors de l'envoi de différents types de messages
4. La fonction pour lire l'intégralité du fichier dans une chaîne est
File_get_contents
5. Fonctions couramment utilisées
La fonction qui analyse les données XML en objets est
simplexml_load_string()
将字符串转换为数组的函数是___ explode_________,将数组转化为字符串的函数是____implode________.
编码 URL 字符串的字符串是____urlencode________.
6. Sprintf函数的作用
这个都是可以查手册的。
7. 微信公众号出现无法提供服务的原因?
1. 网络原因 ,数据接口原因
2. 代码错误,怎么推测原因
修改的哪里检查一下,如果代码没错
可以输出数据 看一下。用php操作文件
$myfile = fopen("newfile.txt", "w");
$txt ="aaaaaaaaaa";
fwrite($myfile, $txt);
fclose($myfile);
8. 自定义菜单的事件推送
单击
单击跳转链接
扫码推事件
扫码推且弹出
弹出系统拍照发图的事件
弹出微信相册发图器的事件
弹出地理位置选择器的事件
9.token的作用
安全机制验证,用于微信服务器与PHP服务器之间的安全验证
10. Appid与secrect的作用
请求api接口(例如菜单的操作)时需要传appid与secrect两个值,用来获取应用的授权码
返回顶部
1. 以PHP+MYSQL为方向,熟练掌握smarty模板引擎、ThinkPHP框架、微信公众平台开发、DEDE、ecshop等二次开发系统,对面向对象有一定的理解;数据库方面,熟练掌握MYSQL、MSSQL等数据库;熟悉在linux下的PHP开发
2. 前端技术:熟练掌握p+CSS网页布局,javascript,JQuery框架、AJAX技术、photoshop图片处理
3. 一年的项目开发经验,使用smarty开发过‘XXXXXXXX’,ThinkPHP开发过‘XXXXXXXX’,使用微信公众平台开发过‘就业服务网’的公众号,使用织梦系统开发过企业站等。
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!