从字符串

时间:2016-06-01 11:57:04

标签: php

我有一个以空格开头的字符串和+符号:

$s = ' +This is a string[...]';

我无法弄清楚如何使用PHP删除第一个+符号。我尝试了ltrimpreg_replace有几种模式,并尝试逃避+符号,我也尝试了substrstr_replace。他们都没有删除字符串开头的加号。要么它不替换它,要么重新/删除字符串的整体。任何帮助将受到高度赞赏!

编辑经过进一步调查后,它似乎并非真正的加号,它看起来像是一个+标志,但我认为不是。关于如何解码/转换它的任何想法?

编辑2: +符号前面有一个空格。我正在使用get_the_excerpt Wordpress函数来获取字符串。

编辑3 :成功删除空格后,+substr($s, 2);,这就是我现在得到的内容:

$s == '#43;This is a string[...]'

Wiki:我必须删除6个字符,我已经尝试了substr($s, 6);,现在它运行良好。谢谢你的帮助。

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)

以下是我能想到的几种不同方式

str_replace

$string = str_replace('+', '', $string);

preg_replace

$string = preg_replace('/^\+/', '', $string);

ltrim

$string = ltrim($string, '+');

substr

$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会从原始字符串的左侧删除所有空格和加法字符。