优雅的代码

$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 协议》,转载必须注明作者和本文链接
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《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';
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年前

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