


When using mkdir to create a folder, I found that this function has two parameters. The second parameter specifies permissions for the newly created folder.
But if you use mkdir('file address', 0777); directly, you will find that the permissions of the new folder are not 777, but usually 022.
When mkdir sets permissions for a folder, it performs a bitwise AND with the umask (user default permission attribute) value of the user currently logged in to the operating system, and the resulting value is the final permission value.
What is umask?
How do we get the default permissions for files we create? How to change this default permission?
When we log in to the system and create a file, there is always a default permission. So where does this permission come from? This is what umask does.
umask sets the default permissions for files created by users. It has the opposite effect to chmod. umask sets the permission "complement code", while chmod sets the file permission code. Generally, the umask value is set in /etc/profile, $HOME/.bash_profile or $HOME/.profile.
How to calculate umask value?
The umask command allows you to set the default mode when creating files. There is a corresponding number in the umask value for each type of user (file owner, user in the same group, other users). For files, the maximum value of this number is 6. The system does not allow you to give execution permission to a text file when you create it. You must use the chmod command to increase this permission after creation. Directories allow setting execution permissions, so for directories, the maximum number in umask can be up to 7.
The general form of this command is: umask nnn, where nnn can be 000 - 777.
We just need to remember that umask "takes away" the corresponding bit from the permissions.
For example: if the umask value is 022, the default directory permission is 755 and the default file permission is 644.
Therefore, if the user umask is 022 (generally the default is this), that is: 000 010 010 is equal to 777 specified by mkdir, that is: 111 111 111. After the "AND", the real permission obtained is: 022.
If you want to maximize the permissions of the new folder, there are two ways to achieve it: (of course, under the condition that the current user can grant the highest permissions)
1. Modify user umask, PHP provides umask function:
$oldumask=umask(0);
mkdir('test',0777);
umask($oldumask);
This method seems to work once and for all. Specify the umask value in the opening file of the script, and then directly use mkdir to control permissions. It should be noted that when using the umask function on a multi-threaded server, multiple threads will share one umask, so it may cause confusion.
2. Use the chmod function, which is also the most commonly used method:
mkdir('file address', 0777);
chmod('file address', 0777);
Finally, it should be noted that the permission value is best expressed in octal, that is, starting with "0", and be sure not to include quotation marks.

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

方法:1、用“str_replace(" ","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\ \;||\xc2\xa0)/","其他字符",$str)”语句。

php判断有没有小数点的方法:1、使用“strpos(数字字符串,'.')”语法,如果返回小数点在字符串中第一次出现的位置,则有小数点;2、使用“strrpos(数字字符串,'.')”语句,如果返回小数点在字符串中最后一次出现的位置,则有。

在PHP中,可以利用implode()函数的第一个参数来设置没有分隔符,该函数的第一个参数用于规定数组元素之间放置的内容,默认是空字符串,也可将第一个参数设置为空,语法为“implode(数组)”或者“implode("",数组)”。

在php中,可以使用substr()函数来读取字符串后几个字符,只需要将该函数的第二个参数设置为负值,第三个参数省略即可;语法为“substr(字符串,-n)”,表示读取从字符串结尾处向前数第n个字符开始,直到字符串结尾的全部字符。


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

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

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

Dreamweaver Mac version
Visual web development tools

ZendStudio 13.5.1 Mac
Powerful PHP integrated development environment

SublimeText3 Mac version
God-level code editing software (SublimeText3)

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),
