我有一个以空格开头的字符串和+
符号:
$s = ' +This is a string[...]';
我无法弄清楚如何使用PHP删除第一个+
符号。我尝试了ltrim
,preg_replace
有几种模式,并尝试逃避+
符号,我也尝试了substr
和str_replace
。他们都没有删除字符串开头的加号。要么它不替换它,要么重新/删除字符串的整体。任何帮助将受到高度赞赏!
编辑经过进一步调查后,它似乎并非真正的加号,它看起来像是一个+
标志,但我认为不是。关于如何解码/转换它的任何想法?
编辑2: +
符号前面有一个空格。我正在使用get_the_excerpt
Wordpress函数来获取字符串。
编辑3 :成功删除空格后,+
带substr($s, 2);
,这就是我现在得到的内容:
$s == '#43;This is a string[...]'
Wiki:我必须删除6个字符,我已经尝试了substr($s, 6);
,现在它运行良好。谢谢你的帮助。
答案 0 :(得分:2)
ltrim有第二个参数
$s = ltrim($s,'+');
编辑:
如果它不起作用,则意味着在该字符串的开头有其他东西,例如。白色空间。您可以使用var_dump($s);
进行检查,它会向您显示您的确切信息。
答案 1 :(得分:1)
您可以像这样使用explode
:
$result = explode('+', $s)[0];
这个函数实际上做的是,它删除你指定为第一个参数的分隔符,并在找到该分隔符时将字符串分解为更小的字符串,并将这些字符串放在一个数组中。
它主要用于某个特定范围的多次出现,但它也适用于你的情况。
例如:
$string = "This,is,a,string";
$results = explode(',', $string);
var_dump($results); //prints ['This', 'is', 'a', 'string' ]
所以在你的情况下,因为一旦结果出现在返回数组的零索引中(只包含一个元素,显然是你的字符串),加号就出现了ony
答案 2 :(得分:1)
以下是我能想到的几种不同方式
$string = str_replace('+', '', $string);
$string = preg_replace('/^\+/', '', $string);
$string = ltrim($string, '+');
$string = substr($string, 1);
答案 3 :(得分:1)
试试这个
<?php
$s = '+This is a string';
echo ltrim($s,'+');
?>
答案 4 :(得分:0)
您可以使用ltrim()或substr()。 例如:
$output = ltrim($string, '+');
或者您可以使用
$output = substr($string, 1);
答案 5 :(得分:0)
您可以删除带修剪的多个字符。也许你没有重新分配你的修剪功能的结果。
<?php
$s = ' +This is a string[...]';
$s = ltrim($s, '+ ');
print $s;
输出:
This is a string[...]
上例中的 ltrim
会从原始字符串的左侧删除所有空格和加法字符。