Line breaks in strings inside ini files result in an error when using INI_SCANNER_RAW with parse_ini_file or parse_ini_string
Nessuno ha ancora preso questa issue.
- Lingua principale
- C
- Stelle
- 40.4k
- Fork
- 8.1k
- Merge medio
- 2g 13h
- PR unite (30g)
- 96
Descrizione
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
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Riproduci il comportamento con l’heredoc PHP fornito e confronta parse_ini_string usando INI_SCANNER_NORMAL, INI_SCANNER_TYPED e INI_SCANNER_RAW; quindi traccia i punti di ingresso del parser INI per parse_ini_file e parse_ini_string. Il lavoro è completato quando le stringhe tra virgolette multilinea vengono accettate in RAW con lo stesso valore degli altri modi dello scanner, con una copertura di regressione per l’esempio.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- c, php
- Ambito
- backend
- Tipo di issue
- Bug
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 45/100