當前位置: 首頁> 最新文章列表> 如何將touch() 函數與chmod() 一起使用來調整文件權限?

如何將touch() 函數與chmod() 一起使用來調整文件權限?

gitbox 2025-09-09
<span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// 這部分與文章內容無關,可以是一些初始化代碼</span></span><span>
</span><span><span class="hljs-title function_ invoke__">date_default_timezone_set</span></span><span>(</span><span><span class="hljs-string">'Asia/Shanghai'</span></span><span>);
</span><span><span class="hljs-variable">$logFile</span></span><span> = </span><span><span class="hljs-keyword">__DIR__</span></span><span> . </span><span><span class="hljs-string">'/log.txt'</span></span><span>;
</span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-title function_ invoke__">file_exists</span></span><span>(</span><span><span class="hljs-variable">$logFile</span></span><span>)) {
    </span><span><span class="hljs-title function_ invoke__">file_put_contents</span></span><span>(</span><span><span class="hljs-variable">$logFile</span></span><span>, </span><span><span class="hljs-string">"日誌初始化\n"</span></span><span>);
}
</span><span><span class="hljs-variable">$timestamp</span></span><span> = </span><span><span class="hljs-title function_ invoke__">date</span></span><span>(</span><span><span class="hljs-string">'Y-m-d H:i:s'</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">file_put_contents</span></span><span>(</span><span><span class="hljs-variable">$logFile</span></span><span>, </span><span><span class="hljs-string">"腳本運行時間: <span class="hljs-subst">$timestamp</span></span></span><span>\n", FILE_APPEND);
</span><span><span class="hljs-meta">?&gt;</span></span><span>

&lt;hr&gt;

</span><span><span class="hljs-meta">&lt;?php</span></span><span>
<span class="hljs-comment">/**
 * 標題: 如何將 touch() 函數與 chmod() 一起使用來調整文件權限?
 * 
 * 在 PHP 中,touch() 函數常用於創建新文件或者更新現有文件的修改時間,
 * 而 chmod() 函數則用於設置文件的訪問權限。將二者結合使用,可以方便地
 * 在創建文件的同時控制它的權限,確保文件在應用中可以被正確讀寫。
 *
 * 示例步驟如下:
 */</span>

</span><span><span class="hljs-comment">// 1. 使用 touch() 創建文件</span></span><span>
</span><span><span class="hljs-variable">$filePath</span></span><span> = </span><span><span class="hljs-keyword">__DIR__</span></span><span> . </span><span><span class="hljs-string">'/example.txt'</span></span><span>;
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">touch</span></span><span>(</span><span><span class="hljs-variable">$filePath</span></span><span>)) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"文件創建或修改時間已更新: <span class="hljs-subst">$filePath</span></span></span><span>\n";
} </span><span><span class="hljs-keyword">else</span></span><span> {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"文件創建失敗\n"</span></span><span>;
}

</span><span><span class="hljs-comment">// 2. 使用 chmod() 設置文件權限</span></span><span>
</span><span><span class="hljs-comment">// 比如設置為 0644,即所有者可讀寫,組用戶和其他用戶可讀</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">chmod</span></span><span>(</span><span><span class="hljs-variable">$filePath</span></span><span>, </span><span><span class="hljs-number">0644</span></span><span>)) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"文件權限已設置為 0644\n"</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"文件權限設置失敗\n"</span></span><span>;
}

<span class="hljs-comment">/**
 * 3. 注意事項:
 * 
 * - chmod() 的權限參數通常使用八進製表示,例如 0644、0755。
 * - 權限的實際生效還取決於操作系統和 PHP 運行的用戶權限。
 * - 在某些系統中,如果 PHP 進程沒有足夠權限,chmod() 可能會失敗。
 * - touch() 也可以更新現有文件的訪問時間和修改時間,而不仅仅是創建文件。
 *
 * 結合使用 touch() 與 chmod() 可以方便地初始化文件,例如日誌文件、
 * 臨時文件或配置文件,保證它們的權限符合安全策略。
 */</span>
</span><span><span class="hljs-meta">?&gt;</span></span><span>

</span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// 这部分也與文章内容无关,可以是腳本尾部的日誌或清理操作</span></span><span>
</span><span><span class="hljs-title function_ invoke__">file_put_contents</span></span><span>(</span><span><span class="hljs-variable">$logFile</span></span><span>, </span><span><span class="hljs-string">"腳本執行完畢\n"</span></span><span>, FILE_APPEND);
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>