奇怪的行为
问题描述:
我需要删除网址的开头部分:奇怪的行为
$test = "price/edit.php";
echo ltrim($test,'price/');
显示dit.php
这里有一个键盘,如果你想捣鼓:https://codepad.remoteinterview.io/DominantCalmingBerlinPrice
任何想法正在发生什么?当然,我希望它回应edit.php
。
答
ltrim
删除找到的所有文字,考虑以下因素:
$test = 'price/edit.php';
echo ltrim($test, 'dprice/'); // outputs t.php
对于这种特殊的情况下,你或许应该使用str_replace
。
+0
不幸的是,str_replace不会像我打算的那样工作....如果我有以下$ test =“test/price/edit.php”,会发生什么情况。它会从中间去掉价格,我只想把它从字符串中删除。 – hendr1x
答
ltrim()
的第二个参数是应该删除的字符掩码(字符列表)。 e
是应该删除的字符,因此它从edit
中删除。
有,你可以使用很多字符串操作,但是因为这是一个文件名/文件路径正确的工具是一个文件系统功能,basename():
echo basename($test);
有关文件路径支票存入pathinfo()更多信息。
答
您好我有前一段时间所面临的同样的问题,发现这个解决方案中使用它,如果它适合你的需要
<?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
尝试我的解决方案 – user1234