隔离长字符串php中的字符

时间:2014-08-19 08:21:54

标签: php string

我有一个字符串$ str,我想搜索一个字符并将其与其他字符串隔离然后将它/它们存储在一个$变量中,该字符是一个完整的冒号“:”

说我有字符串

1

$str = 'water'

$variable ='';

2。

$str = 'water : air'

$variable =':';

3。

$str = 'water : air : land'

$variable ='::'

... e.t.c

如果我使用substr_count($str, ":");我可以计算出现的次数,但我想根据它出现的次数而不是数字来返回字符本身

3 个答案:

答案 0 :(得分:3)

好吧,使用substr_count使用它来重复它发生的次数。

$needle = ':';
$str = 'water : air : land';
$variable = str_repeat($needle, substr_count($str, $needle));
echo $variable; // ::

答案 1 :(得分:2)

你是正确的方式;您可以将substr_count()str_repeat()结合使用:

str_repeat(':', substr_count($str, ':'));

或者如果你必须多次使用它,你可以用它来创建一个函数:

function repeat_needle($needle, $haystack) {
    return str_repeat($needle, substr_count($haystack, $needle));
}

这是一个PHP Fiddle,可以看到它的实际效果。

答案 2 :(得分:2)

另一个简单的方法...使用preg_replace如下所示,这意味着用冒号替换所有内容除了冒号“:”

的preg_replace( “/ [^:] /”, '',$ A);

$cat a.php
<?php
  $a="water : air : land : Fire : Sky";
  $b=preg_replace("/[^:]/",'',$a);
  print $b."\n" ;
?>

$php a.php
::::