在-
之後可以使用哪個字符串函數去除所有內容?字符串未預定義,因此rtrim()
不起作用。 ?使用哪個PHP字符串函數?
9453-abcafaf3ceb895d7b1636ad24c37cb9f-100.png 1
在-
之後可以使用哪個字符串函數去除所有內容?字符串未預定義,因此rtrim()
不起作用。 ?使用哪個PHP字符串函數?
9453-abcafaf3ceb895d7b1636ad24c37cb9f-100.png 1
這要看幾許?我會推薦使用explode
,並且只是爲你想要的字符串部分獲取數組元素。檢查出來:http://php.net/explode
同樣,這將是非常依賴於字符串中劃線的數量,並且可能需要額外的邏輯。
$id = substr($path, 0, strpos($path, '-'));
或可替代preg_replace:
$id = preg_replace('/(.*?)-.*/', '\1', $path);
我相信他想擺脫最右邊的 - 。在這種情況下,你可以使用正則表達式:
$s = '9453-abcafaf3ceb895d7b1636ad24c37cb9f-100.png?1';
$str = preg_replace('!-[^-]*$!', '', $s);
echo $str; // outputs 9453-abcafaf3ceb895d7b1636ad24c37cb9f
如果您知道該字符串的左側部分總是數字,你可以使用PHP的自動類型轉換,只是把它添加到零。 (假設你的意思是第一個連字符)
試試這個:
print 0 + '9453-abcafaf3ceb895d7b1636ad24c37cb9f-100.png?1'; //outputs 9453
可能比preg_replace函數快:
$str = '9453-abcafaf3ceb895d7b1636ad24c37cb9f-100.png?1';
$str = explode('-', $str);
array_pop($str);
$str = implode('-', $str) . '-';
// result = 9453-abcafaf3ceb895d7b1636ad24c37cb9f-
如果你要排除的第一個連字符之前的一切並連接一切否則,你可以這樣做:
<?php
$str='9453-abcafaf3ceb895d7b1636ad24c37cb9f-100.png?1';
$str = explode('-', $str);
$count = count($str);
// So far we have the string exploded but we need to exclude
// the first element of the array and concatenate the others
$new = ''; // This variable will hold the concatenated string
for($i=1;$i<$count;++$i){
$new.=$str[$i];
}
echo $new; // abcafaf3ceb895d7b1636ad24c37cb9f100.png?1
?>
因此,基本上,您將循環遍歷元素並將它們連接起來,但現在我們正在跳過第一個元素。
推薦棄用的函數? Hmmmm – quantumSoup 2010-07-18 00:56:27