Здрасте значить имеется следующая конструкция, но пыхыпы ругается мол (Warning: fclose() expects parameter 1 to be resource, boolean given in) откуда появляется булев тип в переменой $myOpen ? Код (Text): $myOpen = fopen("test.php","r") || die("Что-то пошло не по плану, не могу открыть файл"); var_dump($myOpen); // <<<<--- туда откуда-то залетает булев тип 0_о fclose($myOpen); echo 'файл закрыл';
Идем в документацию и читаем про fopen(): т.е. у тебя при попытке открыть файл происходит какаято ошибка. путь неправильный, нет прав на чтение, нет такого файла и т.д. надо както то хотябы Код (PHP): if (!file_exists($filename)) die('file not found'); if ( ($fh=fopen($filename,'r'))!==FALSE) { // fread()... fclose($fh); } else { die('fopen error'); } в общем читайте доки. там все есть и примеры в том числе
зачем я написал на форум? может для того чтобы мы разобрались в проблеме?... а теперь внимательно ешще раз прочитай синтаксическую ошибку (Warning: fclose() expects parameter 1 to be resource, boolean given in) файлы любые подставляй какие угодно, по логике все ок, откуда появляется булев тип в конструкции ?
парень, ты откуда? ))) не "мы". ты просишь разобраться в твоей проблеме. не забывай про "пожалуйста" и "спасибо".
Попытка закрыть файл(поток), который не открыт Код (PHP): bool fclose(resource $handle) php.net/manual/ru/function.fclose.php
проблема в том, что топикстартер показал нам измененный код, не тот где он получает ошибку. по идее при возврате false должна сработать die() (хотя там уместнее "or", а не "||", но не суть). раз этого НЕ происходит, значит он делает одно, а показывает другое. при этом еще возмущаетс когда ему пытаются помочь. вывод: пусть продолжает страдать, он это заслужил.
Ну так что знатоки, есть еще варианты? )))) можете сами попробовать подставить любой локальный факл или удаленный (или-или) к конечном итоге в $myOpen залетает "true", а пыхыпы ругается мол - че ты мне булев тип суешь а не ресурс )) Добавлено спустя 2 минуты 52 секунды: а почему там уместнее or а не || вроде одно и тоже ?
Не хотите играть в мои игры, ну и не надо дело в том, что у оператора "||"очень высокий приоритет даже выше чем у оператора присвоение "=", что же получается? а получается у нас что с начало происходит сравнение оператором "||" а уже потом присвоение, по этому в переменную собственно и возвращаеться булев тип у оператора "or" почти самый низкий приоритет, соответственно все у нас получается А я пошел дальше страдать и мучатся, я ведь этого заслужил
Господа, вы зря агритесь на меня я только учусь, конкретно эту тему я создал предварительно решив эту проблему(в осознание), после решения тема была поднята тут, мне было интересно на сколько быстро мне расжуют мою ошибку (это ведь основы из основ). Дорогой Артудето, ваш комментарий был самым близким к истине (но без пояснений) + вам в копилочку, а спасибо я скажу вам, и всем участникам форума которые проявили интерес к моему вопросу Что-ж, до скорых встреч, а я тем временем не останавливаюсь, продолжая свой путь в новом для меня мире программирования
ты привел говнокод. я даже смотреть его не стал. и сразу привел пример - КАК ПРАВИЛЬНО работать с fopen() и fclose(). ВСЕ! если бы меня послушал - проблема была бы решена сразу, ибо говноконструкция просто исчезла бы. но НЕТ! ты упорно хотел чтобы мы разгребли твой неработающий код. никто этого делать просто не стал. и в итоге ты НА КОНЕ такой выехал - и утер нам всем носы, показав истинную проблему в ТВОЕМ неправильном коде. молодец чё. думаешь ты комуто чтото доказал? да нифига. тебе пытались помочь, а ты тут пальцы веером, сопли пузырями - пытаешься показать нам какие мы нубы и т.д. ps ведешь себя как тролль, отсюда и соответствующее отношение. показал свою сущность - не жди хорошего отношения.
AndyTitan, сударь, а что вы собственно хотели, чтобы решали проблему которой нет? Создал он проблему которой нет, по этому даже оформить не получилось <матное слово>? Что ты куришь?
в твоё воображение надо добавить не много сатиры и сарказму, возможно эта картина переиграется иначе, в любом случае если я тебя раздражаю, ты можешь смело игнорировать меня и мои посты - я не обижусь а если попросишь, я никогда не буду обращаться или упомянать твоё имя на этом форуме я не знал что программисты такой нервный народ )) Добавлено спустя 11 минут 28 секунд: хотя... с другой стороны для вас это рутина, и повседневная работа, в моём восприятие это игра так как это новый опыт в моей вселенной. наверное отсюда и такая реакция.
Подумай. Добавлено спустя 38 секунд: Ответь на вопрос, с какой целью ты используешь эту конструкцию? Ради чего?
утонул в догадках, с одной стороны, файл подгружается в темп и остается там (но не исполняется) но на этот случай, конечно я буду фильтрировать входные данные, но с другой стороны могут подписать расширение какое угодно, а там залетит на самом деле какой-то вредоносный js или php, но опять же, функция тупо читает а не исполняет. Задосить базу? ну то что ошибки я буду перелавливать м обозначать другими константами это ясно, дабы не палить структуры... После die, вовсе заканчивается исполнение, ну так вывести инструкцию в какойнить инклуд.
А как насчет древнего как мир Код (PHP): defined('Какая-то_там_константа_объявляемая_в_точке_входа_приложения') or die(); ? Даже если перед этим редирект выбросить, все равно надо die вызвать по-хорошему.