优雅的代码

$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 协议》,转载必须注明作者和本文链接
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《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';
2年前 评论
bigbug-gg 2年前
yaoxs (楼主) 2年前
$path = 'D:\phpstudy_pro\WWW\vy\e\p\asd.d\abc.jpg';
echo preg_replace('/^(.*)\..+$/', '$1.png', $path);
2年前 评论
yaoxs (楼主) 2年前
命中水

???

2年前 评论

好家伙,给我整不会了。

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

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

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

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

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

这样更好一些

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

:smirk:

2年前 评论
liux156 2年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!