我有一个输入字符串:
$str = ':this is a applepie :) ';
我怎么能删除第一个发生:用PHP?
期望输出:这是一个苹果馅饼:)
我有一个输入字符串:
$str = ':this is a applepie :) ';
我怎么能删除第一个发生:用PHP?
期望输出:这是一个苹果馅饼:)
当前回答
使用mb_substr函数
mb_substr("我abc", 1);
其他回答
要移除字符串开头的每个:,你可以使用ltrim:
$str = '::f:o:';
$str = ltrim($str, ':');
var_dump($str); //=> 'f:o:'
使用mb_substr函数
mb_substr("我abc", 1);
公认的答案是:
$str = ltrim($str, ':');
工作,但将删除多个:当有多于一个在开始。
$str = substr($str, 1);
将从起始位置删除任何字符。
然而,
if ($str[0] === ':')
$str = substr($str, 1);
完美的工作。
substr()函数可能会帮助你:
$str = substr($str, 1);
字符串从0开始索引,该函数的第二个参数接受cutstart。所以把它设为1,第一个char就没有了。
修剪数组中从字符串开头和结尾开始出现的每个单词+空格和根据正常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"
?>