PHP Tutorial : Symbole spécial transformation en programmes de développement de site Web

Source : Internet
Auteur : utilisateur

1 la différence entre guillemets simples et doubles guillemets en PHP


En PHP, une chaîne est généralement définie dans une paire de guillemets, tels que :

« Je suis une chaîne entre apostrophes »
« Je suis une chaîne entre guillemets »

L’analyseur PHP utilise des paires de guillemets pour déterminer une chaîne. Par conséquent, toutes les chaînes doivent utiliser les mêmes simples ou doubles
Guillemets pour définir le début et la fin. Par exemple, la définition suivante de la chaîne est illégale :

« Je ne suis pas une chaîne valide puisque j’ai désaccord citation marques '
« Moi ni ! »

Lorsque vous définissez une chaîne, un seul guillemet est traité comme une définition, autrement dit, un guillemet simple ou double. Donc, si une chaîne est dirigée par un double
Le numéro commence, puis seulement les guillemets doubles sont analysés par l’analyseur. De cette façon, vous pouvez inclure n’importe quel caractère dans la chaîne de guillemet double, ou même une seule citation
Résolution Les guillemets suivants sont légaux :

$S = « Je suis un « collier d’apostrophe » à l’intérieur d’une chaîne à guillemets doubles » ;
$S = « Je suis une « chaîne de guillemets » à l’intérieur d’une chaîne à guillemet simple » ;

Lorsque PHP rencontre guillemets qui correspondent au début d’une chaîne, on croit avoir atteint la fin de la chaîne, donc :

« Pourquoi doesn de « ceci » ? »

En fait, l’analyseur PHP est divisé en trois parties :

« Pourquoi n »--une chaîne de guillemet double contenant un guillemet simple
Cela--caractères redondants qui l’analyseur ne peut pas gérer
« A » ?--une chaîne normale

L’exemple ci-dessus tente d’inclure des guillemets doubles dans une chaîne de guillemet double, tandis que l’analyseur considère le noeud de chaîne lorsqu’il rencontre le deuxième guillemet double
Habillez-vous chaudement. Pour atteindre l’objectif d’inclure la citation de marques, l’analyseur doit ignorer le sens original de la chaîne lorsqu’elle rencontre les guillemets ordinaires, nous sommes dans les guillemets de la
Ajouter une barre oblique inverse vers l’avant pour dire PHP : ce guillemet fait partie de la chaîne, et la représentation correcte est la suivante :

« Pourquoi doesn ' t \ « that\ » ? »

Un problème courant dans les chaînes de l’anglais est l’utilisation de l’apostrophe ', parce que c’est un guillemet simple, qui est très courant dans les chaînes de l’anglais
(Toutes les cellules en anglais). Vous devez gérer ces caractères avec soin :

« Originel s’échapperait mieux vos apostrophes »

Vous pouvez voir que la barre oblique inverse a sa signification spéciale dans la chaîne, et lorsque nous devons inclure la barre oblique inverse elle-même dans la chaîne, nous devons
Ajoutez une barre oblique inverse à l’avant du symbole. Par exemple :

$File = « C:\Windows\System.ini » ;
Echo $file ; Le résultat d’impression est : C:windowssystem.ini
$File = « C:\\windows\\system.ini » ;
Echo $file ; Est le résultat d’impression : c:\windows\system.ini

Une autre méthode de définition de chaîne élimine les tracas des caractères spéciaux et il est facile de plus du texte de référence. Le groupe de définition de chaîne
La méthode commence par une chaîne personnalisée suivie par le haut, la dernière ligne se termine par la chaîne personnalisée et doit être utilisée.


Deuxièmement, la connexion de chaînes

Chaînes peuvent utiliser des connecteurs de chaîne (.) Pour vous connecter, tel que :

$First _Nom = « Charlie » ;
$Last _name = « Brown » ;
$Full _name = $first _name. ' ' . $Last _Nom ;

Une utilisation courante consiste à créer de grands morceaux de chaînes du code HTML, affectation d’un connecteur de nombre (=) de valeur (.) qui peut être abrégé en un (. =) caractère
Numéro, tels que :

$Html = « % » ;
$Html. = « % » ;
Pour ($i = 0 ; $i < 10 ; $i + +) {}
$Square = $i * $i ;
$Html. = « % ». $I. « % ». $Square. « % » ;
}
$Html. = « % » ;


III. utilisation de variables dans les chaînes

Cette fonctionnalité permet à coller et un grand nombre de chaînes simples sans utiliser le symbole de la connexion. PHP permet d’inclure des mots directement dans une chaîne à guillemet double
Chaîne des variables, on peut trouver que deux chaînes suivantes sont traitées avec les mêmes résultats.

$Full _name = $first _name. ' ' . $Last _Nom ;
$Full _name = « $first _Nom $last _name » ;

Le traitement des apostrophes et des guillemets doubles dans PHP n’est pas la même. Le contenu d’une chaîne à guillemet double peut être interprété et remplacé, tandis que la simple citation
Le contenu d’une chaîne est toujours considérés comme des caractères normaux. Par exemple :

$Foo = 2 ;
Echo « Foo est $foo » ; Résultat d’impression : Foo vaut 2
Echo « foo est $foo » ; Résultat d’impression : Foo est $foo
Echo « foo est $foo \n » ; Résultat d’impression : Foo vaut 2 (habillage ligne simultanée)
Echo « foo est $foo \n » ; Résultat d’impression : Foo est $foo \n

Comme vous pouvez le voir, même la barre oblique inverse dans une chaîne à guillemet simple perd son sens élargi (en plus de l’insertion de barre oblique inversée \ \ et en insérant les commandes)

2 PHP dans la différence entre guillemets simples et doubles guillemets \ '). Ainsi, lorsque vous souhaitez effectuer une substitution de variables dans une chaîne et d’inclure les séquences d’échappement tels que \n (sauts de ligne), vous devez utiliser une double-citation
Résolution Guillemets simples peut être utilisées n’importe où ailleurs, et il est plus rapide d’utiliser le guillemet simple chaîne dans un script de traitement parce que l’analyseur PHP
Méthode de traitement de chaîne de guillemet simple est relativement simple et le traitement des guillemets doubles, car la chaîne à l’intérieur doivent également être analysée, donc plus complexe et donc accélérer le traitement
Degré est légèrement plus lent.

Lorsque vous référencez des combinaisons complexes de variables dans une chaîne, il peut y avoir quelques problèmes, et le code suivant ne fonctionnera pas correctement :

Echo « valeur = $foo » ;
Echo « valeur = $a [$i] » ;

Et le code suivant n’obtient pas les résultats que nous voulons :

Echo « valeur = $a [$i] [$j] » ; Nous voulons imprimer un élément du tableau à deux dimensions $a.

Pour éviter les problèmes potentiels dans l’utilisation de ces chaînes, nous séparent généralement variables complexes de la chaîne, comme ceci :

Echo ' valeur = '. $A [$i] [$j] ;

Une autre approche consiste à placer des variables complexes des accolades, et l’analyseur peut identifier correctement :

Echo « valeur = {$a [$i] [$j]} "//print un élément d’un tableau bidimensionnel $a

De cette façon, les nouveaux problèmes sont apparus. Quand nous voulons le caractère des accolades lui-même dans une chaîne de référence, n’oubliez pas d’utiliser le caractère d’échappement :

$Var = 3 ;
Echo « valeur = {$var} » ; Résultat d’impression « valeur = 3 »
Echo « valeur = \{$var} » ; Résultat d’impression « valeur = {3} »


III. Slash et SQL

Génération de code HTML ou une requête SQL des déclarations est souvent rencontrée et intéressant lorsque vous écrivez des programmes PHP. Pourquoi dites-vous cela, car il s’agit de générer un autre type de code, et vous avez d’examiner attentivement et de la syntaxe d’écriture et aux normes requises par le présent code.

Regardons un exemple où si vous voulez les utilisateurs requête dont les noms sont « O ' Keefe » dans la base de données, la forme habituelle des instructions SQL est ceci :

Sélectionnez * des utilisateurs où last_name = « O\ » Keefe "

Notez que l’instruction SQL ce anglais tous en treillis (apostrophe) doit être échappés avec un antislash. Spécifiquement, PHP fournit des fonctions pour gérer les situations où une fonction addslashes ($STR) vise à insérer automatiquement un caractère d’échappement anti-slash dans une chaîne de caractères de guillemets :

$Last _name = « O ' Keefe » ;
$Sql = « SELECT * des utilisateurs où last_name = ' ». Addslashes ($last _name). "'";

Dans cet exemple, vous devrez inclure un guillemet simple (exigence de syntaxe SQL) en dehors de la chaîne last_name, parce que les guillemets doubles sont utilisés ici, il n’est pas nécessaire d’utiliser l’évasion pour ce guillemet simple. L’instruction suivante est une forme équivalente à l’aide d’une chaîne à guillemet simple :

$Sql = ' SELECT * des utilisateurs où last_name = \ ". Addslashes ($last _name). '\'';

N’importe quel moment que vous voulez écrire une chaîne dans une base de données, que vous devez vous assurer que les guillemets dans il utilise correctement le symbole de l’évasion, qui est une erreur commune que beaucoup de débutants PHP font souvent.


IV. double guillemets et HTML

Contrairement aux instructions SQL, les guillemets doubles sont souvent utilisés pour représenter des chaînes dans des langages HTML standard (de nombreux navigateurs ont maintenant une tolérance de panne fort, permettant aux chaînes d’être représenté en HTML avec des apostrophes ou des guillemets même), tels que :

$Html = ' < a href = '. $url. "" > '. $Link. » B ' ;
$Html = « < a href = \ » $url \ « $link de la »

Le langage HTML ne supporte pas d’échappement barre oblique inverse, qui est ressentie lorsque nous utilisons les entrées cachées du formulaire pour transférer des données. La meilleure façon de définir la valeur d’une entrée cachée consiste à encoder à l’aide de la fonction Htmlspecialchars. L’instruction suivante transmet normalement des données qui peuvent contenir des guillemets :

≪ Input type = nom masqué = var value = « < ? php Echo htmlspecialchars ($var) ? > »


Tout d’abord, le guillemet définit la chaîne. Pour atteindre l’objectif d’inclure la citation de marques, l’analyseur doit ignorer le sens original de la chaîne lorsqu’elle rencontre les guillemets ordinaires, nous ajoutons un backslash devant les guillemets pour dire PHP : ce guillemet fait partie de la chaîne, la méthode de représentation correcte est la suivante : guillemets simples peut être utilisées n’importe où ailleurs, Il est plus rapide d’utiliser le guillemet simple chaîne dans un script de traitement parce que l’analyseur PHP gère les chaînes de guillemet simple d’une manière plus simple, et le traitement des guillemets doubles est plus complex car elle doit aussi être analysée à l’intérieur de la chaîne, donc la vitesse de traitement est un peu plus lente.

Celui-là... Double échappement de guillemets, apostrophes n’échappent pas
Par exemple : / r/n est un changement de ligne, mais si vous écrivez dans un fichier de guillemets simples, il ne sera pas un changement de ligne, mais un personnage, si vous copiez un fichier des guillemets doubles, c’est un changement de ligne.

Article associé

Nous contacter

Le contenu de cette page provient d'Internet et ne reflète pas l'opinion d'Alibaba Cloud ; les produits et services mentionnés sur cette page n'ont aucune relation avec Alibaba Cloud. Si le contenu de la page vous semble problématique, veuillez nous écrire un courriel, nous traiterons le problème dans les 5 jours suivant la réception de votre message.

Si vous constatez des cas de plagiat de la part de la communauté, veuillez envoyer un courriel à : info-contact@alibabacloud.com et fournir des preuves pertinentes. Un membre de notre équipe vous contactera dans les 5 jours ouvrables.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.