1 Востаннє редагувалося TakeAction (20.01.2016 13:06:53)

Тема: '\n" та "\t" в функціях printf() / sprintf() / fprintf()

Не знаю чи варто було створювати через дурну проблему цілу тему на формі, але все ж...
Problem: мені потрібно записати в файл число, файл відкритий в режимі дозаписування ('a'), і в роботі виявив, що в printf() / sprintf() / fprintf() не працює "\n", але в функції fprintf() "\t" працював, тобто в файлі була табуляція, а "\n" рядок не переводила, натомість ставила звичайний пропуск. Можливо хтось знає в чому проблема?
Кусок коду:

$output = fopen('file/output.txt', "a");    
fprintf($output, "\n ------------------------ \n %d", $var);
fclose($output);

2

Re: '\n" та "\t" в функціях printf() / sprintf() / fprintf()

в бінарному режимі записували ?

$output = fopen('file/output.txt', "ab");    
Подякували: TakeAction1

3

Re: '\n" та "\t" в функціях printf() / sprintf() / fprintf()

А, \r\n пробували?

Подякували: TakeAction, leofun01, 221VOLT4

4

Re: '\n" та "\t" в функціях printf() / sprintf() / fprintf()

fed_lviv написав:

А, \r\n пробували?

Єє, працююєєє :D дякую

5

Re: '\n" та "\t" в функціях printf() / sprintf() / fprintf()

А для чого вам ці функції? Чому не file_put_contents() ?
В PHР є константа PHP_EOL яка автоматично визначає,як вставити табуляцію.

Подякували: leofun011

6

Re: '\n" та "\t" в функціях printf() / sprintf() / fprintf()

Чому не file_put_contents() ?

це така стара функція, шо може не навсіх хостингах робити, або робити не так як треба, файл на шарових хостингах появляється навіть через хвилину

7

Re: '\n" та "\t" в функціях printf() / sprintf() / fprintf()

reverse2500 написав:

Чому не file_put_contents() ?

це така стара функція, шо може не навсіх хостингах робити, або робити не так як треба, файл на шарових хостингах появляється навіть через хвилину

Стара? Взагалі-то вона прийшла на заміну  fopen() fwrite() fclose() і тільки в PHP5

Подякували: Сергій78, leofun01, 221VOLT3

8

Re: '\n" та "\t" в функціях printf() / sprintf() / fprintf()

VTrim написав:

А для чого вам ці функції? Чому не file_put_contents() ?
В PHР є константа PHP_EOL яка автоматично визначає,як вставити табуляцію.

я тільки пройшов книжку по PHP і зараз практикуюсь з простенькими задачками. Ще всіх функцій не знаю. прихдиться працювати з тим що знаю:D А знаю я більшість з Сі :D

9

Re: '\n" та "\t" в функціях printf() / sprintf() / fprintf()

Стара?

ага і не бажана в деяких прикладах, погуглити і все стане ясно

10 Востаннє редагувалося mike (20.01.2016 17:18:03)

Re: '\n" та "\t" в функціях printf() / sprintf() / fprintf()

del

11 Востаннє редагувалося VTrim (20.01.2016 17:27:04)

Re: '\n" та "\t" в функціях printf() / sprintf() / fprintf()

Так для того щоб зчитувати файл побайтно (якщо нам це треба) потрібен fopen,fgets,fclose. А тут запис в кінець файлу! Так чи інакше є повне зчитування і file_put_contents є аналогом для fopen fwrite fclose

UPD
muhasjo мабуть переплутав з file_get_contents

12

Re: '\n" та "\t" в функціях printf() / sprintf() / fprintf()

VTrim написав:

UPD
muhasjo мабуть переплутав з file_get_contents

Так і є

13

Re: '\n" та "\t" в функціях printf() / sprintf() / fprintf()

Хто знає які недоліки у file_pu_contents у порівнянні з використанням fopen fwrite ... для запису?
І чому вона стара?

14

Re: '\n" та "\t" в функціях printf() / sprintf() / fprintf()

Стара? Ні в чому. А поганого в ній - значно більше використовує пам'яті. Спробуйте хоча б гігабайтний файл нею записати.

15 Востаннє редагувалося VTrim (21.01.2016 08:23:52)

Re: '\n" та "\t" в функціях printf() / sprintf() / fprintf()

koala написав:

Стара? Ні в чому. А поганого в ній - значно більше використовує пам'яті. Спробуйте хоча б гігабайтний файл нею записати.

Так це ж обгортка для попередніх 3х функцій і виконує точно те ж саме. Це з документації. Далі на stackowerflow пишуть,що в сорсах PHP цієї функції просто йде виклик fopen fwrite fclose.
То за рахунок чого вона має працювати помаліше?

Ну і перевіряти два способи запису бажано по черзі і окремо.. не створюючи попередньо навантаження, що може вплинути на результат іншого варіанту.

Відмінність хіба що в тому, що при 3х f функціях при багаторазовому записі можна не смикати кожен раз fclose, а тільки раз в кінці.

16

Re: '\n" та "\t" в функціях printf() / sprintf() / fprintf()

koala написав:

Стара? Ні в чому. А поганого в ній - значно більше використовує пам'яті. Спробуйте хоча б гігабайтний файл нею записати.

Що можна нагенерувати на php аж на 1 гб? Фільми fpt зберігаєте?

17

Re: '\n" та "\t" в функціях printf() / sprintf() / fprintf()

Що можна нагенерувати на php аж на 1 гб? Фільми fpt зберігаєте?

наприклад треба створити файл  у якому буде список всіх оголошень певної компаніЇ, 1гб мож і не буде но 100-200 мб без проблем. через file_put_contents ви це не зробите)

18

Re: '\n" та "\t" в функціях printf() / sprintf() / fprintf()

Вивантаження дампу БД в певному форматі, наприклад.

19

Re: '\n" та "\t" в функціях printf() / sprintf() / fprintf()

Таку кількість даних не тримають в файлах (маються на увазі суто текстові), для цього і придумані СуБД.

20

Re: '\n" та "\t" в функціях printf() / sprintf() / fprintf()

Бачу, у вас немає досвіду передачі і бекапу даних між 3 різними СУБД.