删除 php 子字符串中不需要的空格?
Removing unwanted whitespace in sub string in php?
我遇到了用户在搜索框中键入字符串的场景。如果输入的字符串超过一个单词,我用
展开
$text = "Hello World";
$pieces = explode(' ', $text);
我将在
之前获得第一和第二任期
$pieces['0'] & $pieces['1'].
但是,如果用户输入类似
$text = "Hello World";
我应该如何获得第二个任期?
如果我 var_dump
结果,我得到
array(12) {
[0]=>
string(5) "Hello"
[1]=>
string(0) ""
[2]=>
string(0) ""
[3]=>
string(0) ""
[4]=>
string(0) ""
[5]=>
string(0) ""
[6]=>
string(0) ""
[7]=>
string(0) ""
[8]=>
string(0) ""
[9]=>
string(0) ""
[10]=>
string(0) ""
[11]=>
string(5) "World"
}
而不是 explode()
使用 preg_split()
然后使用 \s+
(\s space, + 1 次或多次)作为分隔符。像这样:
$pieces = preg_split("/\s+/", $text);
使用这个
将多个space替换为单个space
$output = preg_replace('!\s+!', ' ', $text);
然后拆分文本
$pieces = explode(' ', $output);
尝试:
<?php
$text = "Hello World";
// BONUS: remove whitespace from beginning and end of string
$text = trim($text);
// replace all whitespace with single space
$text = preg_replace('!\s+!', ' ', $text);
$pieces = explode(' ', $text);
?>
Rizier123 的答案足够有效,但如果您想避免使用使用正则表达式检查的 preg_split
,您可以使用空字符串获取数组,然后像这样从中删除所有空元素:
$text = "Hello World";
$pieces = array_filter(explode(' ', $text));
我遇到了用户在搜索框中键入字符串的场景。如果输入的字符串超过一个单词,我用
展开$text = "Hello World";
$pieces = explode(' ', $text);
我将在
之前获得第一和第二任期$pieces['0'] & $pieces['1'].
但是,如果用户输入类似
$text = "Hello World";
我应该如何获得第二个任期?
如果我 var_dump
结果,我得到
array(12) {
[0]=>
string(5) "Hello"
[1]=>
string(0) ""
[2]=>
string(0) ""
[3]=>
string(0) ""
[4]=>
string(0) ""
[5]=>
string(0) ""
[6]=>
string(0) ""
[7]=>
string(0) ""
[8]=>
string(0) ""
[9]=>
string(0) ""
[10]=>
string(0) ""
[11]=>
string(5) "World"
}
而不是 explode()
使用 preg_split()
然后使用 \s+
(\s space, + 1 次或多次)作为分隔符。像这样:
$pieces = preg_split("/\s+/", $text);
使用这个
将多个space替换为单个space$output = preg_replace('!\s+!', ' ', $text);
然后拆分文本
$pieces = explode(' ', $output);
尝试:
<?php
$text = "Hello World";
// BONUS: remove whitespace from beginning and end of string
$text = trim($text);
// replace all whitespace with single space
$text = preg_replace('!\s+!', ' ', $text);
$pieces = explode(' ', $text);
?>
Rizier123 的答案足够有效,但如果您想避免使用使用正则表达式检查的 preg_split
,您可以使用空字符串获取数组,然后像这样从中删除所有空元素:
$text = "Hello World";
$pieces = array_filter(explode(' ', $text));