在 PHP 7.4 中使用函数 ltrim 删除字符串开头的其他字符时,下划线前的字符串丢失的排查分析

1、字符串的值:E:\wwwroot\object\storage\app/theme_downloads/2022/05/25/1653468314.0994.1295326141.zip

2、其他字符的值:E:\wwwroot\object\storage\app/

3、代码实现如下

<?php
echo ltrim('E:\wwwroot\object\storage\app/theme_downloads/2022/05/25/1653468314.0994.1295326141.zip', 'E:\wwwroot\object\storage\app/');
?>

4、结果:_downloads/2022/05/25/1653468314.0994.1295326141.zip。预期为:theme_downloads/2022/05/25/1653468314.0994.1295326141.zip。如图1

图1

5、代码实现调整如下,去掉 其他字符的值 的 最后面的 /

<?php
echo ltrim('E:\wwwroot\object\storage\app/theme_downloads/2022/05/25/1653468314.0994.1295326141.zip', 'E:\wwwroot\object\storage\app');
?>

6、结果符合预期:/theme_downloads/2022/05/25/1653468314.0994.1295326141.zip

7、最终决定使用函数 substr 来实现同样的目的。符合预期。如图2

图2

永夜