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

rob*_*b.m 5 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 ));
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用类似的东西,$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);
        }
Run Code Online (Sandbox Code Playgroud)

但我Array认为这是一种价值.在ltrim那里使用.

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

Ped*_*ito 5

我不能完全肯定的你试图做什么,但在理论上,你可以使用array_map()ltrim()功能,甚至trim(),作为参数爆炸$stateList,即(未经测试):

$stateList = array_map("ltrim",  explode(',', $stateList));
# loop...
Run Code Online (Sandbox Code Playgroud)
  1. explode() - 按字符串数组拆分字符串
  2. array_map() - 将回调应用于给定数组的元素
  3. ltrim() - 从字符串的开头去掉空格(或其他字符)
  4. trim() - 从字符串的开头和结尾去掉空格(或其他字符)


han*_*rik 4

建议的 ltrim 方法不会删除第一个空白空间。相反,它会删除字符串开头的所有空格,即ltrim("foo bar")返回foo bar, not 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/

  • @IncredibleHat 我回答了提出的问题,而不是我认为是开玩笑的问题,没有人比我更惊讶这就是想要的:p (4认同)
  • 你在跟我开玩笑。好吧,问题完全是误导性的,您实际上是在字面上删除“第一个空格”......无论第一个空格是在字符串之前还是在字符串中间。感谢@hanshenrik 发现了这一点。 (2认同)