Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Сохранение UTF файла без BOM

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: а у меня сохраняет в 1251
ПТО
Отправлено: 17 Октября, 2012 - 13:15:51
Post Id



Посетитель


Покинул форум
Сообщений всего: 395
Дата рег-ции: Янв. 2012  


Помог: 3 раз(а)




PHP:
скопировать код в буфер обмена
  1. //записываем нужный дамп-файл
  2.             $fp = fopen("dump.cmd", "w+"); // Открывает файл для чтения и записи; помещает указатель в начало файла и обрезает файл до нулевой длинны. Если файл не существует - пробует его создать.
  3.             $test = fwrite($fp, "Мои записи");
  4.             fclose($fp); //Закрытие файла
  5.        
  6.        
  7.         exec("dump.cmd");


Как сохранить в UTF-8 без BOM???
 
 Top
caballero
Отправлено: 17 Октября, 2012 - 13:22:18
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




открыть любым редактором и затереть BOM


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
ПТО
Отправлено: 17 Октября, 2012 - 13:31:16
Post Id



Посетитель


Покинул форум
Сообщений всего: 395
Дата рег-ции: Янв. 2012  


Помог: 3 раз(а)




caballero пишет:
открыть любым редактором и затереть BOM

Это же надо делать ручками!! как так? Хочу автоматом. Как это сделать?
 
 Top
Мелкий Супермодератор
Отправлено: 17 Октября, 2012 - 13:36:35
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




ПТО пишет:
Как сохранить в UTF-8 без BOM???

Он и не содержит BOM, пока сами не вставите. fwrite слишком низкоуровневая штука, чтобы вообще задумываться о кодировках, она пишет байты.


-----
PostgreSQL DBA
 
 Top
caballero
Отправлено: 17 Октября, 2012 - 13:37:07
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




посмотри сколько занимает BOM и пропусти их


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
ПТО
Отправлено: 17 Октября, 2012 - 13:41:35
Post Id



Посетитель


Покинул форум
Сообщений всего: 395
Дата рег-ции: Янв. 2012  


Помог: 3 раз(а)




Мелкий пишет:
Он и не содержит BOM
И правда - BOMа нет.

Проблема при запуске *.cmd файла.
Если exec(); - то запускается и ничего(дамп БД) не делает (делает - но он нулевой получается - 0 байт)
Если 2 раза кликнуть на него - то дамп - делается(1 секунду занимает где-то).
Почему из php *.cmd не выполняется?

(Отредактировано автором: 17 Октября, 2012 - 13:42:38)

 
 Top
EuGen Администратор
Отправлено: 17 Октября, 2012 - 14:28:53
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




ПТО пишет:
exec("dump.cmd");

Причин может быть много. Одна из возможных - отсутствие права исполнения (execute) на файл dump.cmd у пользователя, от которого исполняется php-файл.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
ПТО
Отправлено: 17 Октября, 2012 - 15:21:01
Post Id



Посетитель


Покинул форум
Сообщений всего: 395
Дата рег-ции: Янв. 2012  


Помог: 3 раз(а)




EuGen пишет:
Одна из возможных - отсутствие права исполнения
Не, Жень, права у меня есть )))
Видишь, файл dump.cmd запускается и создается дамп БД (но его длина 0Байт) .такое впечатление, что php не ждет, когда скрипт в этом файле выполнится.
Содержание файла dump.cmd:
Спойлер (Отобразить)

Если просто два клика по нему - то все работает запускается cmd.exe, секунду думает, дампит БД и ОК))).
А как через php - я хз Улыбка
 
 Top
EuGen Администратор
Отправлено: 17 Октября, 2012 - 15:50:17
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




ПТО пишет:
права у меня есть

Одно дело - у того пользователя, из-под которого файл запускается двойным щелчком левой кнопки мыши, другое - у пользователя, от которого он исполняется в php. Стоит это проверить. Как стоит проверить и корректность переменных окружения в момент вызова файла через php (например, убедиться, что рабочий каталог совпадает с тем, в котором собственно находится файл)


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
ПТО
Отправлено: 17 Октября, 2012 - 17:11:30
Post Id



Посетитель


Покинул форум
Сообщений всего: 395
Дата рег-ции: Янв. 2012  


Помог: 3 раз(а)




Выполнить команду
md c:\server\newFolder
из *.cmd файла, созданного php удается.

А
c:\pgsql\bin\pg_dump.exe -h 127.0.0.1 -U myName -w -F c -f c:/server/construction/logs/backup/S-H-V/2012-10-17-15-18-59 S-H-V

нет. Пробовал со всеми вариантами слешей /\

В чем разница, Где узнать от чего имени запускается php (админа или нет) ?

(Отредактировано автором: 17 Октября, 2012 - 17:30:09)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с файловой системой и файлами »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB