Line breaks in strings inside ini files result in an error when using INI_SCANNER_RAW with parse_ini_file or parse_ini_string
Personne n'a encore pris cette issue.
- Langage dominant
- C
- Étoiles
- 40.4k
- Forks
- 8.1k
- Merge moyen
- 2 j 13 h
- PR mergées (30 j)
- 96
Description
Description
I don't think there should be a difference in the parsing of string literals in INI files between INI_SCANNER_RAW and other scanner modes. "abcd" is parsed the same, it should be as consistant with "ab\ncd".
The following code:
<?php
$ini = <<<EOF
a=42
b="line 1
line 2"
EOF;
var_dump(parse_ini_string($ini, false, INI_SCANNER_NORMAL));
var_dump(parse_ini_string($ini, false, INI_SCANNER_TYPED));
var_dump(parse_ini_string($ini, false, INI_SCANNER_RAW));
Resulted in this output:
array(2) {
["a"]=>
string(2) "42"
["b"]=>
string(13) "line 1
line 2"
}
array(2) {
["a"]=>
int(42)
["b"]=>
string(13) "line 1
line 2"
}
Warning: syntax error, unexpected '"' in Unknown on line 3
in /in/RTv1g on line 11
bool(false)
But I expected this output instead:
array(2) {
["a"]=>
string(2) "42"
["b"]=>
string(13) "line 1
line 2"
}
array(2) {
["a"]=>
int(42)
["b"]=>
string(13) "line 1
line 2"
}
array(2) {
["a"]=>
string(2) "42"
["b"]=>
string(13) "line 1
line 2"
}
Demo: https://3v4l.org/RTv1g/rfc#vgit.master
PHP Version
all, including master
Operating System
No response
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Reproduisez le comportement avec le heredoc PHP fourni et comparez parse_ini_string en utilisant INI_SCANNER_NORMAL, INI_SCANNER_TYPED et INI_SCANNER_RAW ; puis retracez les points d’entrée de l’analyseur INI pour parse_ini_file et parse_ini_string. C’est terminé lorsque les chaînes entre guillemets multilignes sont acceptées dans RAW avec la même valeur que dans les autres modes de l’analyseur, avec une couverture de régression pour l’exemple.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- c, php
- Domaine
- backend
- Type d'issue
- Bug
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 45/100