Я могу прочитать всю строку в строке, используя fgets()
но fscanf()
не делает этого.
Согласно инструкции PHP
fscanf — анализирует ввод из файла в соответствии с форматом
Функция
fscanf()
похож наsscanf()
, но он берет свой ввод из файла, связанного с дескриптором, и интерпретирует ввод в соответствии с указанным форматом, который описан в документации дляsprintf()
,fgets — получает строку из указателя файла
Получает строку из указателя файла.
поскольку fscanf()
поддерживает форматы, как указано выше, я могу использовать %s
читать всю строку, но вместо этого он читает только одно слово.
PHP документация fscanf()
а также sscanf()
не завершено. Форматы аналогичны тем, которые используются printf()
, но они не совсем одинаковы. Когда вы печатаете, %s
напечатает любую строку, но когда вы сканируете, она просто читает слово. Чтобы получить более полную информацию, вам необходимо прочитать документацию C
fscanf()
функция. Часть этой информации также находится в разделе комментариев на веб-странице документации.
Чтобы прочитать всю строку с fscanf()
использовать "%[^\\n]"
, В fscanf()
, $[^characters]
означает соответствие любой последовательности символов, которая не входит в набор между скобками (это похоже на [^characters]*
в регулярном выражении). Так что это соответствует любой последовательности символов, кроме новой строки. Увидеть http://php.net/manual/en/function.sscanf.php#56076
Других решений пока нет …