优雅的代码

$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 协议》,转载必须注明作者和本文链接
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 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年前

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