如何删除字符串开头的第一个空白空间?

时间:2018-07-15 14:14:16

标签: php

我有一个像这样的字符串:

" United States",我希望它是"United States"

出于其他原因,我使用以下命令替换字符串,但是我不知道如何告诉它仅删除第一个空白空间:

$title = usp_get_meta(false, 'usp-custom-8');
update_post_meta( $post->ID, 'usp-custom-8', str_replace('n Argentinan', 'Argentina', $title ));

我知道我可以使用类似$str = ltrim($str);之类的东西,但是我不确定如何将其放置在那里,并且我不想冒险运行循环并造成灾难,因为它将遍历我的整个数据库。

从理论上讲,我也可以在其他代码中运行它:

        $stateList = usp_get_meta(false, 'usp-custom-8');
        $stateList = ltrim($stateList);
        $stateList = explode(',', $stateList);
        foreach($stateList as $state) {
          array_push($countries, $state);
        }

但是我得到Array作为值。在此处使用ltrim时。

所以我要么让它作为第一个示例运行循环,要么作为最后一段代码运行,但是如何从字符串中删除第一个空白空间?

6 个答案:

答案 0 :(得分:5)

我不确定您要做什么,但是从理论上讲,您可以将array_map()ltrim()函数一起使用,甚至可以将trim()用作自变量 之后爆炸$stateList,即(未测试):

$stateList = array_map("ltrim",  explode(',', $stateList));
# loop...

  1. explode()-用字符串分割字符串 数组
  2. array_map()-将回调应用于给定的元素 数组
  3. ltrim()-从字符串开头去除空格(或其他字符)
  4. trim()-从字符串的开头和结尾去除空格(或其他字符)

答案 1 :(得分:4)

使用let nsObject1 = Nsobject() let nsObject2 = Nsobject() let nsObjectArray1 = [nsObject1] let nsObjectArray2 = [nsObject2] let _ = nsObjectArray1 == nsObjectArray2 let object1 = Object() let object2 = Object() let objectArray1 = [object1] let objectArray2 = [object2] let _ = objectArray1 == objectArray2 函数http://php.net/manual/en/function.array-map.php

array_map

答案 2 :(得分:4)

建议的ltrim方法不会删除第一个空白空间。相反,它将删除字符串开头的所有空格,即ltrim("foo bar")将返回foo bar,而不是foobar(它不会删除字符串中的第一个空白)

请使用preg_replace和$ limit $str=preg_replace("/\s/u","",$str,1);-不管第一个空格在哪里,都会删除$ str中的第一个空格。

update_post_meta( $post->ID, 'usp-custom-8', preg_replace("/\s/u","",$title,1));

https://www.reddit.com/r/MaliciousCompliance/

答案 3 :(得分:3)

您可以循环修剪并把它们放到一个新的数组中,就像这样:

$countries  = [' United States', 'Argentina', ' France'];
$countriesClean = array();

    foreach($countries as $country) {
      $cleanCountry = ltrim($country);
      array_push($countriesClean, $cleanCountry);
    }

在这种情况下,阿根廷是唯一不需要清除的国家/地区名称。 Demo

答案 4 :(得分:2)

或者您可以只使用preg_replace

$stateList = "     United States  ,   Argentina   ,  France      ";

$stateList = preg_replace("#\s*,\s*#", ',', trim($stateList) );

print_r(explode(",", $stateList));

输出为:

Array
(
    [0] => United States
    [1] => Argentina
    [2] => France
)

答案 5 :(得分:1)

如果 $ title 是字符串,而您只想删除字符串开头的空格,则可以尝试...。

代码

$title = " United States";
if(strpos($title," ") === 0 ){
  $title = substr($title, -(strlen($title)-1));
}
var_dump($title);

我正在使用 === 严格检查,有时 strpos 返回false。

输出

string(13) "United States"

Demo