优雅的代码

$path = 'D:\phpstudy_pro\WWW\vy\e\p\asd\abc.jpg'
$arr = explode('.',$path);
$arr[count($arr) - 1] = 'png';
$path = implode('.',$arr);

如果是以前的我肯定是嫌麻烦,直接分解成数组,然后顺着想法 for 循环了拼接了
之所以 for 循环遍历拼接,而不采用 $arr [0].’png’的原因是防止 $path 有其他点的情况。
大概是函数知道多了,所以代码也渐渐变得优雅起来了吧!

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 8
fatrbaby
$path = 'D:\phpstudy_pro\WWW\vy\e\p\asd\abc.jpg'
$segments = pathinfo($path);
$path = $segments['filename'] . '.png';
3年前 评论
bigbug-gg 3年前
yaoxs (楼主) 3年前
$path = 'D:\phpstudy_pro\WWW\vy\e\p\asd.d\abc.jpg';
echo preg_replace('/^(.*)\..+$/', '$1.png', $path);
3年前 评论
yaoxs (楼主) 3年前
命中水

???

3年前 评论

好家伙,给我整不会了。

3年前 评论
fatrbaby
$path = 'D:\phpstudy_pro\WWW\vy\e\p\asd\abc.jpg'
$segments = pathinfo($path);
$path = $segments['filename'] . '.png';
3年前 评论
bigbug-gg 3年前
yaoxs (楼主) 3年前

自带函数还是了解不够多呀,像字符串处理这块,有原生自带的函数,比如像字符串替换的这种:

$path = 'D:\phpstudy_pro\WWW\vy\e\p\asd\abc.jpg';
$newPath =str_replace('.jpg', '.png', $path);

用原生 php 提供的东西,一般效率会好一丢丢。

3年前 评论
MArtian 3年前
bigbug-gg (作者) 3年前
$path = 'D:\phpstudy_pro\WWW\vy\e\p\asd\abc.jpg';
$path = substr_replace($path, '.png', strripos($path, '.'));
echo $path;

这样更好一些

3年前 评论
$path = 'D:\phpstudy_pro\WWW\vy\e\p\asd.d\abc.jpg';
echo preg_replace('/^(.*)\..+$/', '$1.png', $path);
3年前 评论
yaoxs (楼主) 3年前
$path = 'D:\phpstudy_pro\WWW\vy\e\p\asd.d\abc.jpg';
$path = Str::beforeLast($path, '.') . '.png';
3年前 评论
$path = 'D:\phpstudy_pro\WWW\vy\e\p\asd\abc.jpg' . '.png'

:smirk:

3年前 评论
liux156 3年前