Есть ли какой-нибудь URL / поток, который fopen
будет успешно открыт в большинстве установок PHP? /dev/null
недоступно или не доступно в некоторых системах. Что-то вроде php://temp
должно быть довольно безопасной ставкой, верно?
Приложение для этого кода, которое гарантирует файловый ресурс, вместо смешанного типа файла bool|resource
, который вы используете с fopen
:
/**
* @return resource
*/
function openFileWithResourceGuarantee() {
$fh = @fopen('/write/protected/location.txt', 'w');
if ( $fh === false ) {
error_log('Could not open /write/protected/location.txt');
$fh = fopen('php://temp');
}
return $fh;
}
В PHP 7 со строгими типами вышеупомянутая функция должна гарантировать ресурс и избегать bools. Я знаю, что ресурсы не являются официальными типами , но все же хотят быть максимально безопасными для типов.