2016-07-21 251 views

回答

1

ltrim刪除找到的所有文字,考慮以下因素:

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

對於這種特殊的情況下,你或許應該使用str_replace

+0

不幸的是,str_replace不會像我打算的那樣工作....如果我有以下$ test =「test/price/edit.php」,會發生什麼情況。它會從中間去掉價格,我只想把它從字符串中刪除。 – hendr1x

1

ltrim()的第二個參數是應該刪除的字符掩碼(字符列表)。 e是應該刪除的字符,因此它從edit中刪除。

有,你可以使用很多字符串操作,但是因爲這是一個文件名/文件路徑正確的工具是一個文件系統功能,basename()

echo basename($test); 

有關文件路徑支票存入pathinfo()更多信息。

+0

謝謝你的解釋。我沒有得到它是一個人物面具。 – hendr1x

+0

不幸的是basename不起作用。我想支持任何URL長度(例如price/sample/edit.php會產生sample/edit.php),如果遇到test/price/edit.php,它將不會執行任何操作。 – hendr1x

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 
+0

不幸的是,我想支持任何網址(例如price/sample/edit.php產生sample/edit.php) – hendr1x

+0

@ hendr1x是啊那就是爲什麼我建議你第二個選項的例子:) – user1234

+0

對不起,我不清楚。我希望系統在這種情況下返回price/edit.php,而不僅僅是edit.php – hendr1x