我想从字符串中提取变量的第一个单词.例如,请输入以下内容:
<?php $myvalue = 'Test me more'; ?>
Run Code Online (Sandbox Code Playgroud)
结果输出应该是Test输入的第一个字.我怎样才能做到这一点?
我需要拆分一个字符串并提取由空白字符分隔的单词.来源可能是英文或日文.英文空白字符包括制表符和空格,日文文本也使用这些字符.(IIRC,所有广泛使用的日语字符集都是US-ASCII的超集.)
因此,我需要用来分割字符串的字符集包括普通的ASCII空格和制表符.
但是,在日语中,还有另一个空格字符,通常称为"全宽空间".根据我Mac的角色查看器实用程序,这是U + 3000"IDEOGRAPHIC SPACE".这是(通常)当用户在日语输入模式下键入时按空格键时的结果.
我还需要考虑其他角色吗?
我正在处理被告知"用空格分隔条目"的用户提交的文本数据.但是,用户正在使用各种计算机和移动电话操作系统来提交这些文本.我们已经看到用户在输入此数据时可能不知道他们是处于日语输入模式还是英语输入模式.
此外,即使在日语模式下,空间键的行为也会因平台和应用程序而异(例如,Windows 7将插入表意空间,但iOS将插入ASCII空间).
所以我想要的基本上是"视觉上看起来像空格的所有角色的集合,可能是在用户按空格键时生成的,或者是tab键,因为许多用户不知道空格和制表符之间的区别,日语和/或英语".
对这样的问题有任何权威的答案吗?
我想爆炸一个字符串(基于分隔符分隔并放入一个数组中),使用空格("")和换行符("\n")作为分隔符.
该方法(我认为不是最好的方法)是:
问题:如何通过空格和换行来展开字符串?
参考:新行数组
我试图使用preg_replace ?从字符串输入中消除日语全宽白色空格" "但我最终得到一个损坏的多字节字符串.
我更喜欢preg_replace而不是str_replace.这是一个示例代码:
$keywords = '?????';
$keywords = str_replace(array(' ', '?'), ' ', urldecode($keywords)); // outputs :'????'
$keywords = preg_replace("@[ ?]@", ' ',urldecode($keywords)); // outputs :'?? ????'
任何人都知道为什么会这样,以及如何纠正这种情况?
我有一行php:
$output = shell_exec('ps aux | grep 9902 | awk \'{print $11" "$2}\'');
Run Code Online (Sandbox Code Playgroud)
print $output; 会给出输出:
rtmpgw 10089
/usr/bin/vlc 10107
sh 10123
grep 10125
Run Code Online (Sandbox Code Playgroud)
我尝试使用下一行将上面的输出放入一个数组中.
$oparray = explode(" ", trim($output));
Run Code Online (Sandbox Code Playgroud)
它有效,但不如预期.print_r($oparray);将给出以下输出:
Array
(
[0] => rtmpgw
[1] => 10089
/usr/bin/vlc
[2] => 10107
sh
[3] => 10123
grep
[4] => 10125
)
Run Code Online (Sandbox Code Playgroud)
这让我感到困惑,因为我希望每个值都有一个索引号,但是其中三个值似乎没有索引.
所以我想我的问题是两部分
任何人都可以帮我找到一个看起来像这样的有用数组:
数组
([0] => rtmpgw [1] => 10089 [2] =>/usr/bin/vlc [3] => 10107 [4] => sh [5] => 10123 [6] => grep [ …
如何通过白色空间分割字符串无论白色空间有多长?
例如,从以下字符串:
"the quick brown fox jumps over the lazy dog"
Run Code Online (Sandbox Code Playgroud)
我会得到一个数组
['the', 'quick', 'brown', 'fox', 'jumps', 'over', 'the', 'lazy', 'dog'];
Run Code Online (Sandbox Code Playgroud) 这里的目标是从日志文件中获取文本,由返回分隔的纯文本,每行由不同数量的空格分隔.
将它变成多维是很容易的,摆脱空白不是.我想有很多混乱的方法可以解决这个问题,但这不是array_filter()的原因之一吗?
$alarms = array(
"1530 1545 Place_4 Fault_1",
"1617 1622 Place_1 Fault_2",
"1634 1640 Place_2 Fault_1"
);
foreach ($alarms as $data) {
$subArr = explode(" ", $data);
array_filter($subArr);
print_r($subArr);
echo "<br /><br />";
}
Run Code Online (Sandbox Code Playgroud)
输出:
Array ( [0] => 1530 [1] => [2] => [3] => [4] => [5] => 1545 [6] => [7] => [8] => [9] => [10] => Place_4 [11] => [12] => [13] => [14] => [15] => Fault_1 )
Array ( [0] => 1617 …Run Code Online (Sandbox Code Playgroud)