【问题标题】:Remove empty space and plus sign from the beginning of a string从字符串的开头删除空格和加号
【发布时间】:2016-09-30 18:44:30
【问题描述】:

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

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

我不知道如何使用 PHP 删除第一个 + 符号。我试过ltrimpreg_replace 有几种模式,并试图逃避+ 符号,我也试过substrstr_replace。他们都没有删除字符串开头的加号。它要么不替换它,要么替换/删除整个字符串。任何帮助将不胜感激!

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

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

编辑 3: 成功删除空白空间和 +substr($s, 2); 后,我现在得到的内容如下:

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

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

【问题讨论】:

标签: php


【解决方案1】:

ltrim 有第二个参数

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

编辑:

如果它不起作用,则意味着该字符串的开头还有其他内容,例如。空白。您可以使用var_dump($s); 来检查它,它会准确地显示您在那里拥有的东西。

【讨论】:

  • 感谢您的回答,但只是试了一下,并没有取代它。
  • 它替换 - 我检查了。所以也许你只认为你有你告诉我们的东西。只需通过var_dump($s);准确地显示您所拥有的内容
  • 当然可以。 @NaourassDerouichi 可能还有其他东西,例如。空白,他没有看到它或类似的东西
  • 您可以在答案中添加您的评论吗?添加它可以包含空格的事实,并使用var_dump 进行检查可能会在将来对其他人有所帮助。谢谢。
  • @NaourassDerouichi 添加了答案。
【解决方案2】:

你可以像这样使用explode

$result = explode('+', $s)[0];

这个函数的实际作用是,它删除您指定为第一个参数的分隔符,并在找到该分隔符时将字符串分成更小的字符串,并将这些字符串放入数组中。

它主要用于特定分隔符的多次出现,但它也适用于您的情况。

例如:

$string = "This,is,a,string";
$results = explode(',', $string);
var_dump($results); //prints ['This', 'is', 'a', 'string' ]

所以在你的情况下,因为加号只出现在返回数组的零索引中(它只包含一个元素,显然是你的字符串)

【讨论】:

    【解决方案3】:

    这是我能想到的几种不同的方法

    str_replace

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

    preg_replace

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

    ltrim

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

    substr

    $string = substr($string, 1);
    

    【讨论】:

      【解决方案4】:

      您可以使用 ltrim() 或 substr()。 例如:

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

      或者你可以使用

      $output = substr($string, 1);
      

      【讨论】:

        【解决方案5】:

        试试这个

        <?php
        $s = '+This is a string';
        echo ltrim($s,'+');
        ?>
        

        【讨论】:

          【解决方案6】:

          您可以使用修剪删除多个字符。也许您没有重新分配修剪功能的结果。

          <?php
          
          $s = ' +This is a string[...]';
          $s = ltrim($s, '+ ');
          print $s;
          

          输出:

          This is a string[...]
          

          以上示例中的ltrim 删除了原始字符串左侧的所有空格和加法字符。

          【讨论】:

            猜你喜欢
            • 2011-12-22
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2015-08-29
            • 2013-10-07
            • 2011-04-08
            • 1970-01-01
            相关资源
            最近更新 更多