11
votes

Quelle est la différence entre les balises PHP ouvertes "

Désolé pour la question idiote, mais j'ai couru à travers le code qui utilisait: xxx

existe quelque chose de spécial sur sur ou juste uni ?


1 commentaires

essayer d'injecter un code via la fonction de recherche?


8 Réponses :


7
votes

C'est un raccourci pour PrintOnload (); ?> . Un moyen plus simple de l'écrire lorsque vous faites des modèles et des choses à base de PHP.

Soyez prudent, cependant. Ma compréhension (même si je ne suis jamais couru moi-même) est que la version sténographique peut être désactivée sur certains serveurs.


3 commentaires

Toujours. Ils appellent cela un court_open_tag. Détails ici, php.net/manual/fr/ini.core.php .


Ce n'est pas seulement éteint sur certains serveurs - il est désactivé par défaut. C'est donc probablement sur la plupart des serveurs.


@Frank Farmer: Pour empêcher les billets ennuyeux, les hébergements publics transforment les étiquettes courtes, ainsi que les globaux: -s



1
votes

n'est pas une chose. C'est en fait puis = . Comme @Derekerdmann l'a mentionné, il s'agit d'une configuration non recommandée.

donner le suivant un look suivant:


0 commentaires

18
votes

Ils sont sténographiques de connu sous le nom Tags courts . Vous devriez éviter d'utiliser les utiliser car:


18 commentaires

L'option short_open_tag INI est pas obsolète.


@salathe: Voir ceci par rapport à votre commentaire: Stackoverflow.com/Questtions/3008614/...


Qui est ce gars Dorward? est-il membre de l'équipe phonorique PHP? Idem pour la priebsch One. Ils sont personne. Vous ne pouvez pas l'utiliser comme une preuve.


@Col. Shrapnel: Je voudrais Naturellement finalement ceci avec vous En disant que vous devriez fournir vos commentaires là-bas, afin que les choses soient effacées pour moi aussi bien que lui. De plus, je ne sais pas comme Dorwand comment vous êtes expert à PHP, votre argument annule également vos commentaires pour moi.


Non tu as tort. Celui qui déclare une déclaration, devrait apporter une preuve positive. Vous n'avez qu'aucune preuve à côté de Blab vide de personnes ignorantes. Et pas un seul mot officiel de l'équipe PHP. Ma preuve est juste l'absence d'un tel mot. C'est la logique. Assez simple, même pour vous


@Sarfraz Ahmed: Col. Shrapnel a raison. Vous devez prouver vos déclarations. Parce que sans preuve, ce ne sont que des hypothèses.


@Col. Shrapnel, @gumbo: J'ai déjà fourni une preuve dans ma réponse. Vous devez avoir vu la diapositive numéro 47 à: slideshare.net/thinkphp/php-53-and-php-6-a-look-ahead


Je vous ai déjà demandé: qui est ce gars de Prège? Est-ce qu'il a le droit de parler pour l'équipe de base PHP? La réponse est NON .


@Gumbo: J'ai aussi mis à jour ma réponse, vous voyez que je ne m'implique pas dans des arguments avec ce gars pour des raisons évidentes, mais parce que vous l'avez favorisé, je dois vous répondre que de ne pas vous et jamais lui.


Il y a une longue discussion au sujet de la dévalorisation possible des balises courtes ici: Mail-Archive.com/internals@lists.php.net/msg41839.html


@Col. Shrapnel: vous avez manqué troisième point juste? Il est dit Nous n'ajouterons pas " Quelque chose a demandé par l'OP. Je pense que vous êtes déroutant entre et .


@Sarfraz Ahmed: Les diapositives ne sont pas une preuve à mon avis. L'auteur de cette diapositives, "Ajax Ajax", n'est pas une autorité dont j'ai confiance. Vous ne devriez que citer des sources dignes de confiance en ce qui concerne les informations sur le développement futur de PHP.


@Sarfraz Ahmed: Le rapport dit qu'ils supprimeront <% (style ASP), ils conserveront (étiquettes courtes) et ils n'ajouteront pas (balises PHP avec implicite echo ).


@Gumbo: J'ai de nouveau mis à jour ma réponse et j'ai dit dans mon commentaire pour voir la réponse mise à jour s'il vous plaît, je crois que la confusion ici créée est entre et . L'OP a l'objet de la même chose que la question posée plus tard.


@Sarfraz ahmed: n'est actuellement pas pris en charge et ne sera pas pris en charge dans les versions futures (voir le rapport que vous avez lié à). Seuls est pris en charge lors de la suppression des étiquettes ouvertes courtes.


@Sarfraz Ahmed: Maintenant je suis confus, voyant que vous étiez celui qui a changé le titre de la question et le corps de à , pourquoi avez-vous c'est fait? L'OP a posé des questions sur !


@Toomanycooks: parce que c'est ce que je crois qu'il voulait dire et aussi à cause de la confidération entre et . Et nous ne pouvons conclure cette discussion que lorsque OP répond, si ce n'est pas ce qu'il cherche, je vais certainement garder ma réponse ou la supprimer :)


@Sarfraz ahmed: Que diriez-vous de citer ceci: "Quelle est l'une des raisons pour lesquelles nous avons décidé de ne pas les supprimer à PHP 6." - Rasmus Lerdorf, Mail-Archive.com/internals@lists. php.net/msg41853.html



1
votes

juste pour corriger toutes ces réponses erronées:

Les balises ouvertes courtes sont non vont être supprimées ou obsolètes.


0 commentaires

15
votes

Au lieu de parler si short_open_tags est dépréciée ou non, nous devrions parler de la avantages et inconvénients lors de l'utilisation des balises courtes ouvertes:

Avantages

En utilisant les balises courtes ouvertes avec est plus court et sans doute plus facile à écrire que les balises d'ouverture standard et respectivement. C'est tout à fait à portée de main lorsque vous utilisez directement PHP dans un modèle. (C'est probablement aussi la raison pour laquelle PHP a syntaxe alternative pour les structures de contrôle .)

Inconvénients

nécessite une configuration spécifique

Lors de l'utilisation des balises ouvertes courtes vous êtes tenus d'avoir short_open_tags activé. Si vous ou votre fournisseur d'hébergement Web décide de désactiver short_open_tags , votre application ne fonctionnera probablement pas plus et vous pouvez avoir des problèmes de sécurité graves. Parce que si short_open_tags est désactivé, seules les balises d'ouverture standard sont reconnus et tout à l'intérieur des balises d'ouverture courtes est traité comme texte brut. (Voir aussi le billet de blog référencé dans Sarfraz Ahmed réponse.)

Cette exigence rend votre application PHP moins portable si vous avez l'intention d'écrire des applications qui ne sont pas pour vous. That'a aussi pourquoi beaucoup recommandent de ne pas utiliser les balises courtes ouvertes (y compris le manuel PHP):

Remarque: En utilisant des balises courtes doivent être évitées lors du développement d'applications ou de bibliothèques qui sont destinées à être redistribuées, ou le déploiement sur les serveurs PHP qui ne sont pas sous votre contrôle, car les balises courtes peuvent ne pas être pris en charge sur la serveur cible. Pour le code portable, redistribuable, assurez-vous de ne pas utiliser des balises courtes.

PHP 5.4 est toujours disponible, quelle que soit l'option short_open_tags . d'autre part nécessite l'option soit activée.

Les conflits avec des instructions de traitement XML

Un autre problème est lors de l'utilisation XML instructions de traitement comme < ? xml ...?> . Lorsque short_open_tags est activé, vous ne pouvez pas les utiliser directement dans votre code, mais besoin d'utiliser PHP pour le sortir:

Si vous voulez utiliser PHP avec XML, vous pouvez désactiver cette option pour utiliser en ligne. Dans le cas contraire, vous pouvez l'imprimer avec PHP, par exemple:? ' .

Sinon PHP étouffer le xml .

Maintenant, quelques derniers mots sur la deprecation: Actuellement short_open_tags est pas dépréciée. Sinon, le manuel indiquerait explicitement. En outre, Rasmus Lerdorf, inventeur de PHP, a écrit dans un réponse sur la question: « est-il vrai que short_open_tag est dépréciée en PHP 6? » sur le fonctionnement interne de diffusion liste qu'il y avait plusieurs raisons de ne pas enlever short_open_tags 6 PHP:

Quelle est l'une des raisons pour lesquelles nous avons décidé de ne pas les supprimer en PHP 6.


0 commentaires

0
votes

en ajoutant cela en raison de questions en double

AKA Shortags est une balise alternative pour PHP mais ne fonctionne que sur des serveurs qui l'ont activé.

Cela vous permet d'écrire un écho comme celui-ci

Cependant, il n'est pas recommandé de les utiliser et a été suggéré d'être supprimé ou déprécié dans PHP5.4 + avec les globaux de registre, le mode sans échec et les citations magiques, etc.

Ainsi, bien que vous puissiez les utiliser, ils ne sont pas recommandés. 1. Ils ne sont pas portables car les serveurs doivent les avoir activés. 2. Ils peuvent conduire facilement au code Spaghetti car vous pouvez facilement intégrer HTML dans votre fichier. 3. Des méthodes spéciales doivent être utilisées lorsque vous les mélangez avec une déclaration XML

Ils sont aussi parfaits pour créer des modèles avec d'autres notations sténographiques pour les boucles et les contrôles conditionnels.


2 commentaires

Tout très vrai (sauf qu'ils ne planifient pas d'être obsolètes), mais il a été assez bien couvert


Ah. Je suppose que j'ai été balayé avec les courants. Merci. BTW, je ne posté cela que parce que j'ai tapé le tout et que la question était fermée.



12
votes

est une étiquette courte qui est à peu près équivalente à: xxx

à partir de PHP 5.4, cette syntaxe est toujours disponible, mais dans les versions antérieures de php, il a besoin short_open_tag activé. Quant à la recherche de la recherche sur le débordement de pile, essayez code: ".


2 commentaires

De plus, pour pouvoir l'utiliser, il doit être défini dans le fichier php.ini. Vous pouvez donc rencontrer des problèmes sur certains serveurs où cette balise courte est désactivée.


@Zefiryn: Il convient également de noter que cela ne fait pas partie de short_tags à partir de PHP 5.4. Espérons que les gens n'auront pas à s'inquiéter dans le futur :)



1
votes

Inside Short Tag, vous ne pouvez pas écrire comme ceci. XXX

Parce qu'il n'imprimera que la première sortie comme 5.

Intérieur à l'intérieur, vous pouvez écrire comme ceci. xxx

Il imprimera à la fois 5 et 20

c'est tout sur la syntaxe.


0 commentaires