来自ltrim()的带有正斜杠的奇怪行为

时间:2016-07-21 15:36:14

标签: php

我需要删除网址的开头部分:

$test = "price/edit.php";
echo ltrim($test,'price/');

显示dit.php

如果你想摆弄:https://codepad.remoteinterview.io/DominantCalmingBerlinPrice

,这是一个键盘

任何想法是怎么回事?我希望它能回应edit.php

3 个答案:

答案 0 :(得分:1)

ltrim删除找到的所有字符,请考虑以下内容:

$test = 'price/edit.php';
echo ltrim($test, 'dprice/'); // outputs t.php

对于这种特定情况,您可能应该使用str_replace

答案 1 :(得分:1)

ltrim()的第二个参数是应删除的字符掩码(字符列表)。 e是应删除的字符,因此会从edit中删除。

您可以使用许多字符串操作,但由于这是文件名/文件路径,因此正确的工具是文件系统函数,basename()

echo basename($test);

有关文件路径的更多信息,请查看pathinfo()

答案 2 :(得分:0)

您好我前一段时间遇到了同样的问题,并且发现这个解决方案在适合您的需要时使用它

   <?php

    $test = "price/edit.php";
    echo ltrim(ltrim($test,'price'),'/');

output 

edit.php

但我必须说你应该使用basename作为所有类型的问题

 <?php

    $test = "project/price/edit.php";
   // echo ltrim(ltrim($test,'price'),'/');// this will give oject/price/edit.phpedit.php

    echo basename($test); // and it will generate edit.php