@Pacerier Vous n'avez pas besoin d'échapper aux citations à l'intérieur d'un heredoc.
Madara's Ghost
7
@Pacerier Vous avez demandé pourquoi nous devons nous préoccuper d'heredoc sur les citations. C'est pourquoi. Les deux sont des options pour les chaînes multilignes.
Madara's Ghost
139
PHP a des chaînes Heredoc et Nowdoc, qui sont le meilleur moyen de gérer les chaînes multilignes en PHP.
$str =<<<EOD
Exampleofstring
spanning multiple lines
using heredoc syntax.
$var is replaced automatically.
EOD;
Un Nowdoc est comme un Heredoc, mais il ne remplace pas les variables.
$str =<<<'EOD'Exampleofstring
spanning multiple lines
using nowdoc syntax.
$var is NOT replaced in a nowdoc.
EOD;
Attention, le jeton de fin EODne doit pas du tout être indenté, sinon PHP ne le reconnaîtra pas. De plus, vous n'êtes pas obligé d'utiliser " EOD"; il peut s'agir de n'importe quelle chaîne de votre choix.
Existe-t-il un moyen de marquer les réponses? J'ai toujours pensé que vous ne pouviez faire cela que sur des questions. @TheBlackBenzKid
Pacerier
Je voulais dire que je lui ai donné un plus +1 en le remplaçant.
TheBlackBenzKid
@TheBlackBenzKid "faved";)
Andrés Morales
8
Je ne sais pas comment il se cumule en termes de performances, mais pour les endroits où cela n'a pas vraiment d'importance, j'aime ce format car je peux être sûr qu'il utilise \ r \ n (CRLF) et pas le format de mon fichier PHP. enregistré dans.
$text="line1\r\n"."line2\r\n"."line3\r\n";
Cela me permet également d'indenter comme je le souhaite.
Une autre solution consiste à utiliser la mise en mémoire tampon de sortie , vous pouvez collecter tout ce qui est sorti / écho et le stocker dans une variable.
Veuillez noter que la mise en mémoire tampon de sortie n'est peut-être pas la meilleure solution en termes de performances et de propreté du code pour ce cas précis, mais cela vaut la peine de la laisser ici pour référence.
Pour mettre les chaînes "l" et "vv" sur des lignes séparées dans le code seul:
$xml ="l";
$xml .="vv"
echo $xml;
Dans ce cas, vous dites d'ajouter .=la chaîne à la fin de la version précédente de cette variable de chaîne. N'oubliez pas que = n'est qu'un opérateur d'affectation, donc dans votre code d'origine, vous attribuez à la variable une nouvelle valeur de chaîne.
Pour mettre les chaînes "l" et "vv" sur des lignes séparées dans l'écho seul:
$xml ="l\nvv"
echo $xml;
Vous n'avez pas besoin de plusieurs chaînes dans cette instance, comme caractère de nouvelle ligne \n s'en chargera pour vous.
Pour mettre les chaînes "l" et "vv" sur des lignes séparées dans le code et lors de l'écho:
concatenation
. C'est ce qu'on appelle quand on assemble des chaînes.Réponses:
Bien,
Travaux.
Vous pouvez également utiliser les éléments suivants:
ou
Modifier en fonction du commentaire:
Vous pouvez concaténer des chaînes à l'aide de l'
.=
opérateur.la source
PHP a des chaînes Heredoc et Nowdoc, qui sont le meilleur moyen de gérer les chaînes multilignes en PHP.
http://php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc
Un Nowdoc est comme un Heredoc, mais il ne remplace pas les variables.
Attention, le jeton de fin
EOD
ne doit pas du tout être indenté, sinon PHP ne le reconnaîtra pas. De plus, vous n'êtes pas obligé d'utiliser "EOD
"; il peut s'agir de n'importe quelle chaîne de votre choix.la source
Fera écho:
Documentation sur PHP_EOL .
la source
Je ne sais pas comment il se cumule en termes de performances, mais pour les endroits où cela n'a pas vraiment d'importance, j'aime ce format car je peux être sûr qu'il utilise \ r \ n (CRLF) et pas le format de mon fichier PHP. enregistré dans.
Cela me permet également d'indenter comme je le souhaite.
la source
Une autre solution consiste à utiliser la mise en mémoire tampon de sortie , vous pouvez collecter tout ce qui est sorti / écho et le stocker dans une variable.
Veuillez noter que la mise en mémoire tampon de sortie n'est peut-être pas la meilleure solution en termes de performances et de propreté du code pour ce cas précis, mais cela vaut la peine de la laisser ici pour référence.
la source
Essayez peut-être ". =" Au lieu de "="?
vous donnera "lvv";
la source
Mais vous devriez vraiment regarder dans http://us3.php.net/simplexml
la source
Pour mettre les chaînes "l" et "vv" sur des lignes séparées dans le code seul:
Dans ce cas, vous dites d'ajouter
.=
la chaîne à la fin de la version précédente de cette variable de chaîne. N'oubliez pas que = n'est qu'un opérateur d'affectation, donc dans votre code d'origine, vous attribuez à la variable une nouvelle valeur de chaîne.Pour mettre les chaînes "l" et "vv" sur des lignes séparées dans l'écho seul:
Vous n'avez pas besoin de plusieurs chaînes dans cette instance, comme caractère de nouvelle ligne
\n
s'en chargera pour vous.Pour mettre les chaînes "l" et "vv" sur des lignes séparées dans le code et lors de l'écho:
la source