前提・実現したいこと
file_put_contentsで、ファイルを新規作成し書き込みを試しています。
コードは
$filename = chmod("test2.txt", 0777);
file_put_contents($filename, "テキストを作成し保存します。");
エラーは
Warning: chmod() [function.chmod]: No such file or directory in パス
色々なページで調べたところ、ファイルが存在しない場合は自動で新規作成してくれるということでいたが
いくら試してもできません。
何がいけないのどしょうか?
参考にしたサイト
https://www.flatflag.nir87.com/touch-829
ffftpの設定でパーミッションは777にしています。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答4件
0
ファイルを作成する前にchmod
することはできません。umask
で調整するか、ファイル作成後にchmod
してください。
投稿2019/07/12 07:11
総合スコア145121
0
chmod
の戻り値はbool
です。
1行目実行後、$filename
に入っているものはtrue
かfalse
ではないでしょうか。
投稿2019/07/12 07:12
総合スコア26
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/07/12 07:31 編集
2019/07/12 07:33
2019/07/12 07:43 編集
0
ベストアンサー
chmod()は既に存在するファイルやディレクトリに権限をあたるものなので、
まだファイルを作っていない段階で実行しようとすると提示のエラーになります。
先にfile_put_contents()でファイルを作成してください。
ファイルが存在しない場合は自動で新規作成してくれるということ
それはfile_put_contents()の仕様です。
filename が存在しない場合はファイルを作成します。 存在する場合はそのファイルを上書きします。ただし FILE_APPEND フラグが設定されている場合は別です。
エラーはその内容の通りchmod()に対して起きています。
投稿2019/07/12 07:11
編集2019/07/12 07:17総合スコア80765
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/07/12 07:20
2019/07/12 07:21
2019/07/12 07:28
2019/07/12 07:30
2019/07/12 07:43
2019/07/12 07:45
0
chmod() にファイルが存在しない場合は自動で新規作成という処理はなかったと思います。
投稿2019/07/12 07:12
編集2019/07/12 07:12退会済みユーザー
総合スコア0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/07/12 07:18
退会済みユーザー
2019/07/12 07:26
2019/07/12 07:41
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/07/12 07:19