php中这些都非常的常用。
1. 分割字符串 explode (返回的是数组)
$str = '李狗子|15|abc.jpg';
$result = explode('|',$str);// 注意书写顺序
print_r($result);
例如:
Array(
[0] => 李狗子
[1] => 15
[2] => abc.jpg
)
2. 将数组中的数据连接成字符串 implode 在 js中是join
$arr = [100,200,'abc','男','abc.jpg'];
$str = implode($arr,'|'); // 注意书写顺序
echo "$str"; // 100|200|abc|男|abc.jpg
3. time() 从1970-1-1 0:00:00 到现在的秒数
echo time(); // 1530534605
4. php 中的随机数 rand() 在 js中的随机数是Math.random()
$num = rand(1,10);
echo "$num"; // 1~10
5. 判断数组中是否有某个值 in_array 存在则返回true,不存在则返回false
$arr = array('a','b','c','d',123,456,'李狗子');
var_dump(in_array('ddd',$arr));
6. strrch() 从指定的字符串中按某个符号,截取字符串
$name = 'abcde.jpg';
$ext = strrchr($name,'.');
echo $ext; // .jpg
举个例子:
图片上传:
图片上传.png
首先:在php文件里写上
<?php print_r($_FILES); ?>
返回的是一个数组。
Array
(
[photo] => Array
(
[name] => 0001.jpg 图片的名称 jpg/jpeg/gif/png
[type] => image/jpeg 图片的类型
[tmp_name] => C:\Windows\php1D18.tmp 临时路径
[error] => 0 错误标识
[size] => 6000 图片大小
)
扩展:
/**
* 1. php中的文件上传有一个特点, 会将上传过来的图片存在一个临时的路径里面
* 2. 如果没有后续操作,程序结束后会删除这个临时文件
* 3. 所以要想永久的保存上传过来的文件,需要将文件从临时路径移动到指定的目录里面
* 4. 要想将上传过来的所有的图片都保存在文件夹里面,还得保证文件名称不能重复
* 5. 比较好的解决办法,就是给上传过来的每一个图片重新生成一个随机的数字名称
*/
如果上传一张图片倒没什么问题,但是,上传下一张图片,相同名字的不同图片时,就会覆盖之前的。
// 测试一张 可以上传了 (同名会覆盖)
$tmp_name = $_FILES['photo']['tmp_name'];
$picName = $_FILES['photo']['name'];
move_uploaded_file($tmp_name, './upload/'.$picName);
处理同名覆盖的问题(这里使用到了上面常用的API)
if (!empty($_FILES)) {
// 1. 获取上传过来的文件的后缀
$picName = $_FILES['photo']['name'];
$ext = strrchr($picName, '.');
// echo "$ext"; // 结果是 .XXX
// 2. 生成随机的图片名称
$name = time().rand(1000,9999).$ext; // 1235489486546.jpg
// 3. 移动到指定的路径里面
$tmp_name = $_FILES['photo']['tmp_name'];// 获取文件存储的临时路径
move_uploaded_file($tmp_name,'./upload/'.$name);
// 4. 生成一个图片的标准路径 (显示在界面)
$pathName = './upload/'.$name;
}
网友评论