[英]How to remove the leading character from a string?
我有一個輸入字符串,如:
$str = ':this is a applepie :) ';
如何刪除第一個出現的:
with PHP?
所需的輸出: this is a applepie :)
要從字符串的開頭刪除每個:
,您可以使用ltrim :
$str = '::f:o:';
$str = ltrim($str, ':');
var_dump($str); //=> 'f:o:'
使用substr :
$str = substr($str, 1); // this is a applepie :)
3個答案的執行時間:
通過更換大小寫刪除第一個字母
$str = "hello";
$str[0] = "";
// $str[0] = false;
// $str[0] = null;
// replaced by �, but ok for echo
0.39602184295654
次測試的執行時間: 0.39602184295654
秒
用 substr() 刪除第一個字母
$str = "hello";
$str = substr($str, 1);
5.153294801712
次測試的執行時間: 5.153294801712
秒
用 ltrim() 刪除第一個字母
$str = "hello";
$str= ltrim ($str,'h');
5.2393000125885
次測試的執行時間: 5.2393000125885
秒
使用 preg_replace() 刪除第一個字母
$str = "hello";
$str = preg_replace('/^./', '', $str);
6.8543920516968
次測試的執行時間: 6.8543920516968
秒
這是代碼
$str = substr($str, 1);
echo $str;
輸出:
this is a applepie :)
接受的答案:
$str = ltrim($str, ':');
有效,但會刪除多個:
當開始時有多個。
$str = substr($str, 1);
將從頭開始刪除任何字符。
然而,
if ($str[0] === ':')
$str = substr($str, 1);
完美地工作。
$str = substr($str, 1);
echo substr('abcdef', 1); // bcdef
注意:
unset($str[0])
將不起作用,因為您無法取消設置字符串的一部分:-
Fatal error: Cannot unset string offsets
經過進一步的測試,我不建議再使用它。 在 MySQL 查詢中使用更新的字符串時,它給我帶來了問題,更改為substr
解決了問題。 我想刪除這個答案,但評論表明它以某種方式更快,所以有人可能會使用它。 您可能會發現修剪更新的字符串可以解決字符串長度問題。
有時你不需要一個函數:
$str[0] = '';
例如:
$str = 'AHello';
$str[0] = '';
echo $str; // 'Hello'
此方法修改現有字符串而不是創建另一個字符串。
你可以使用sbstr()函數
$amount = 1; //where $amount the the amount of string you want to delete starting from index 0
$str = substr($str, $amount);
要在PHP中刪除字符串的第一個字符,
$string = "abcdef";
$new_string = substr($string, 1);
echo $new_string;
Generates: "bcdef"
使用 mb_substr 函數
mb_substr("我abc", 1);
從字符串的開頭和結尾開始修剪數組中每個單詞的出現 + 空格和可選的額外單個字符,按照正常的 trim()
<?php
function trim_words($what, $words, $char_list = '') {
if(!is_array($words)) return false;
$char_list .= " \t\n\r\0\x0B"; // default trim chars
$pattern = "(".implode("|", array_map('preg_quote', $words)).")\b";
$str = trim(preg_replace('~'.$pattern.'$~i', '', preg_replace('~^'.$pattern.'~i', '', trim($what, $char_list))), $char_list);
return $str;
}
// for example:
$trim_list = array('AND', 'OR');
$what = ' OR x = 1 AND b = 2 AND ';
print_r(trim_words($what, $trim_list)); // => "x = 1 AND b = 2"
$what = ' ORDER BY x DESC, b ASC, ';
print_r(trim_words($what, $trim_list, ',')); // => "ORDER BY x DESC, b ASC"
?>
該代碼對我來說效果很好。
$str = substr($str ,-(strlen($str)-1));
也許,也貢獻答案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.