powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / file_put_contents - Permission denied на Mac OS
6 сообщений из 6, страница 1 из 1
file_put_contents - Permission denied на Mac OS
    #38413757
Random2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть класс для работы с Ini-файлами на php. Под Windows/Linux проблем нет - все работает отлично. Потребовалось запустить скрипт по Mac OS (XAMPP). Все бы хорошо, но при выполнении file_put_contents получаю ошибку:
file_put_contents(config.ini) [function.file-put-contents]: failed to open stream: Permission denied

Перепробовал все возможные варианты - установка прав 777 на папку из под терминала, установка прав на папку и подпапки, путь к папке проверял - все в порядке.

Но заметил интересную закономерность. Создал файл test.php, в него вписал file_put_contents(..., ...); - Отрабатывает без всяких проблем. Как только в этот же файл вставляю код класса и использую этот класс, то сразу же получаю ошибку на file_put_contents. Что-то я никак не могу понять, при чем тут класс? Объясните пожалуйста, знающие люди.
...
Рейтинг: 0 / 0
file_put_contents - Permission denied на Mac OS
    #38414247
sxq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
приведите фрагмент кода с распечаткой того, что передается в file_put_contents
...
Рейтинг: 0 / 0
file_put_contents - Permission denied на Mac OS
    #38414601
Random2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sxq, Вот код класса и внизу моих 3 строчки:

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
<?php
	if (!defined('_BR_'))
	   define('_BR_',chr(13).chr(10));
	class TIniFileEx {
		public $filename;
		public $arr;
		function __construct($file = false){
			if ($file)
				$this->loadFromFile($file);
		}
		function initArray(){
			$this->arr = parse_ini_file($this->filename, true);
		}
		function loadFromFile($file){
			$result = true;
			$this->filename = $file;
			if (file_exists($file) && is_readable($file)){
				$this->initArray();
			}
			else
				$result = false;
			return $result;
		}
		function read($section, $key, $def = ''){
			if (isset($this->arr[$section][$key])){
				return $this->arr[$section][$key];
			} else
				return $def;
		}
		function write($section, $key, $value){
			if (is_bool($value))
				$value = $value ? 1 : 0;
			$this->arr[$section][$key] = $value;
		}
		function eraseSection($section){
			if (isset($this->arr[$section]))
				unset($this->arr[$section]);
		}
		function deleteKey($section, $key){
			if (isset($this->arr[$section][$key]))
				unset($this->arr[$section][$key]);
		}
		function readSections(&$array){
			$array = array_keys($this->arr);
			return $array;
		}
		function readKeys($section, &$array){
			if (isset($this->arr[$section])){
				$array = array_keys($this->arr[$section]);
				return $array;
			}
			return array();
		}
		function updateFile(){
			$result = '';
			foreach ($this->arr as $sname=>$section){
				$result .= '[' . $sname . ']' . _BR_;
				foreach ($section as $key=>$value){
					$result .= $key .'='.$value . _BR_;
				}
				$result .= _BR_;
			}
				$filename_temp = 'test2.ini';
				file_put_contents($filename_temp, $result);

		}
		function __destruct(){
			$this->updateFile();
		}
	}


	$ini = new TIniFileEx("test.ini");
	$ini->Write('test','message','text');
	$ini->UpdateFile();
?>
...
Рейтинг: 0 / 0
file_put_contents - Permission denied на Mac OS
    #38414608
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуйте указать полное имя файла, от корня ФС.
...
Рейтинг: 0 / 0
file_put_contents - Permission denied на Mac OS
    #38415017
sxq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
работает ли PHP в защищенном режиме (safe_mode)?
ну и проверьте файлы/папки на предмет доступа (например, сам исполняемый файл) http://www.php.net/manual/ru/function.fileperms.php + доступ папок по пути к создаваемому файлу
...
Рейтинг: 0 / 0
file_put_contents - Permission denied на Mac OS
    #38416250
Random2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vkle,

Спасибо огромное!!! Проблема действительно была именно в этом.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / file_put_contents - Permission denied на Mac OS
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]