


PHP recursively creates directories (pseudo-original)_PHP tutorial
Sometimes you need to create a directory function recursively. In this case, you need to use the dirname() function (to obtain the directory part of the path) and the mkdir() function (to create the directory).
Let’s popularize the grammar first:
dirname
(PHP 4, PHP 5)
dirname — Returns the directory portion of the path
Description ?
string dirname ( string$path
)
Given a string containing the full path to a file, this function returns the directory name after removing the file name.
Parameter ?
path
-
A path.
In Windows, both slash (/) and backslash () can be used as directory separators. In other circumstances it is a slash (/).
Return value ?
Returns the parent directory of path. If there are no slashes in
path
, a dot ('.') is returned, indicating the current directory. Otherwise, the string returned is the string after removing the /component at the end ofpath
(the last slash and the following part).Update log ?
版本 说明 5.0.0 dirname() 的操作从 PHP 5.0.0 版开始是二进制安全的。 4.0.3 在这个版本中,dirname() 被修正为 POSIX 兼容。 Example ?
Example #1 dirname() Example
<?php <br> echo "1) " . dirname("/etc/passwd") . PHP_EOL; // 1) /etc<br> echo "2) " . dirname("/etc/") . PHP_EOL; // 2) / (or on Windows)<br> echo "3) " . dirname("."); // 3) .<br> ?>
Comment ?
Note:
dirname() operates naively on the input string, and is not aware of the actual filesystem, or path components such as "..".
Note:
dirname() is locale aware, so for it to see the correct directory name with multibyte character paths, the matching locale must be set using the setlocale() function.
Note:
Since PHP 4.3.0, you will often get a slash or a dot back from dirname() in situations where the older functionality would have given you the empty string.
Check below an example of what happened:
<?php <br> <br> // PHP 4.3.0 以前<br> dirname('c:/'); // 返回 '.'<br> <br> // PHP 4.3.0 以后<br> dirname('c:/x'); // 返回 'c:'<br> dirname('c:/Temp/x'); // 返回 'c:/Temp'<br> dirname('/x'); // 返回 '/' (or '' on Windows)<br> <br> ?>
See ?
- basename() - Return the file name part of the path
- pathinfo() - Returns file path information
- realpath() -
Returns the normalized absolute pathname
mkdir
(PHP 4, PHP 5)
mkdir — Create a new directory
Description ?
bool mkdir ( string$pathname
[, int$mode
= 0777 [, bool$recursive
= false [, resource$context
]]] )Try to create a new directory specified by pathname.
Parameter ?
pathname
-
The path to the directory.
mode
-
The default mode is 0777, which means maximum possible access. For more information about mode please read the chmod() page.
Note:
mode
in Ignored under Windows.Note that you may want to specify the mode as an octal number, which means the number should start with zero. The mode is also modified by the current umask, which can be changed with umask().
recursive
-
Allows the creation of nested directories specified in the
pathname
. context
-
Note: Support for Context was added in PHP 5.0.0. See Streams for a description of context.
Return value ?
Returns
TRUE
on success, orFALSE
on failure.Update log ?
Version Description 5.0.0 Add 版本 说明 5.0.0 添加 recursive
参数。5.0.0 mkdir() 也可用于某些 URL 封装协议。参见支持的协议和封装协议 的列表看看 mkdir() 支持哪些 URL 封装协议。 4.2.0 mode
成为可选项。5.0.0 mkdir() also works with certain URLs Encapsulation protocol. See the list of supported protocols and encapsulated protocols to see what mkdir() supports. URL encapsulation protocol. 4.2.0 becomes optional. Example ?
Example #1 mkdir() Example
<?php <br> mkdir("/path/to/my/dir", 0700);<br> ?>
Example #2 Using mkdir()
parameterrecursive
with<?php <br> // Desired folder structure<br> $structure = './depth1/depth2/depth3/';<br> <br> // To create the nested structure, the $recursive parameter <br> // to mkdir() must be specified.<br> <br> if (!mkdir($structure, 0, true)) {<br> die('Failed to create folders...');<br> }<br> <br> // ...<br> ?>
Comment ?
Note: When safe mode is enabled, PHP will check when executing a script whether the directory being scripted has the same UID (owner) as the script being executed.
See ?
- is_dir() - Determine whether the given file name is a directory
- rmdir() -
delete directory
Recursively create directory function:
/** * Create the directory recursively. * @param $path The directory to create, such as, /a/b/c/d/e/ * @param $mode The mode of the directory to create, such as, 0755, 0777. */ function RecursiveMkdir($path,$mode) { if (!file_exists($path)) { // The file is not exist. RecursiveMkdir(dirname($path), $mode); // Call itself. if(mkdir($path, $mode)) { // Call mkdir() to create the last directory, and the result is true. return true; } else { // Call mkdir() to create the last directory, and the result is false. return false; } } else { // The file is already exist. return true; } }
References:
Click to open link

PHPsessionstrackuserdataacrossmultiplepagerequestsusingauniqueIDstoredinacookie.Here'showtomanagethemeffectively:1)Startasessionwithsession_start()andstoredatain$_SESSION.2)RegeneratethesessionIDafterloginwithsession_regenerate_id(true)topreventsessi

In PHP, iterating through session data can be achieved through the following steps: 1. Start the session using session_start(). 2. Iterate through foreach loop through all key-value pairs in the $_SESSION array. 3. When processing complex data structures, use is_array() or is_object() functions and use print_r() to output detailed information. 4. When optimizing traversal, paging can be used to avoid processing large amounts of data at one time. This will help you manage and use PHP session data more efficiently in your actual project.

The session realizes user authentication through the server-side state management mechanism. 1) Session creation and generation of unique IDs, 2) IDs are passed through cookies, 3) Server stores and accesses session data through IDs, 4) User authentication and status management are realized, improving application security and user experience.

Tostoreauser'snameinaPHPsession,startthesessionwithsession_start(),thenassignthenameto$_SESSION['username'].1)Usesession_start()toinitializethesession.2)Assigntheuser'snameto$_SESSION['username'].Thisallowsyoutoaccessthenameacrossmultiplepages,enhanc

Reasons for PHPSession failure include configuration errors, cookie issues, and session expiration. 1. Configuration error: Check and set the correct session.save_path. 2.Cookie problem: Make sure the cookie is set correctly. 3.Session expires: Adjust session.gc_maxlifetime value to extend session time.

Methods to debug session problems in PHP include: 1. Check whether the session is started correctly; 2. Verify the delivery of the session ID; 3. Check the storage and reading of session data; 4. Check the server configuration. By outputting session ID and data, viewing session file content, etc., you can effectively diagnose and solve session-related problems.

Multiple calls to session_start() will result in warning messages and possible data overwrites. 1) PHP will issue a warning, prompting that the session has been started. 2) It may cause unexpected overwriting of session data. 3) Use session_status() to check the session status to avoid repeated calls.

Configuring the session lifecycle in PHP can be achieved by setting session.gc_maxlifetime and session.cookie_lifetime. 1) session.gc_maxlifetime controls the survival time of server-side session data, 2) session.cookie_lifetime controls the life cycle of client cookies. When set to 0, the cookie expires when the browser is closed.


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

WebStorm Mac version
Useful JavaScript development tools

mPDF
mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),

EditPlus Chinese cracked version
Small size, syntax highlighting, does not support code prompt function

DVWA
Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software

SublimeText3 English version
Recommended: Win version, supports code prompts!
