MENU

php - 记一次推敲代码的历程

• July 23, 2021 • 日常,教程

实现

判断网址最后一位是不是/如果是则替换成空,不是则不处理。
现有网址:https://www.moleft.cn/要求替换成:https://www.moleft.cn

思路

这种题简直就是送分题,众所周知substr可以截取字符串,所以只需要判断最后一位是不是/就能完成这道题,于是我大手一挥
直接写出下面的代码

<?php
$str = 'https://www.moleft.cn/';
if(substr($str,strlen($str)-1,strlen($str))=='/'){
    echo substr($str, 0, strlen($str)-1);
}
?>

保存,运行,和预期一样,直接输出了https://www.moleft.cn,但是三行代码不是我的性格,我在想怎么能用最短的代码把这个功能实现出来,于是我又突然想到了trim(),所以直接把代码改成了...

<?php
$str = 'https://www.moleft.cn/';
echo trim($str, '/');
?>

再次运行,果然还是达到预期了,不过用trim()好像不太妥当,当我把$str = 'https://www.moleft.cn/';改成了$str = '/https://www.moleft.cn/';,果不其然,最后结果还是https://www.moleft.cn,这就偏离题意了,于是直接改用rtrim(),完美!!!

最终

<?php
$str = 'https://www.moleft.cn/';
if(substr($str,strlen($str)-1,strlen($str))=='/'){
    echo substr($str, 0, strlen($str)-1);
}
echo rtrim($str,'/');
?>

俗话说的好,能用一行代码坚决不用两行。

Archives QR Code
QR Code for this page
Tipping QR Code
Leave a Comment

2 Comments
  1. 不就是一个/而已嘛,这个代码有什么实际意义吗?

    1. @林林因为很多人输入习惯不一样,有的人习惯输入http://域名/有的人喜欢http://域名,如果不把最后面的/去掉的话,最后拼接url的时候可能就会出现http://域名//index.php或者http://域名index.php这种情况