爆炸字符串以获取关键字(Youtube频道关键字)

时间:2014-12-07 13:25:38

标签: php youtube

我正在开发一个需要youtube api的应用程序。

我遇到了需要youtube频道关键字的问题。我将所有关键字都放在一个字符串中。

$string = 'php java "john smith" plugins';

我想在数组中获取上述关键字。我可以使用explode(' ',$string),但问题是john smith本身就是一个关键字。我期待我的阵列是这样的:

array(
   [0] => 'php',
   [1] => 'java',
   [2] => 'john smith',
   [3] => 'plugins'
) 

实现这一目标的任何快速/肮脏的解决方案?

2 个答案:

答案 0 :(得分:1)

str_getcsv()会处理它,只需给它一个空格作为分隔符。

实施例

$string = 'php java "john smith" plugins';
$array = str_getcsv($string, ' ');
var_export($array);

输出:

array (
  0 => 'php',
  1 => 'java',
  2 => 'john smith',
  3 => 'plugins',
)

答案 1 :(得分:1)

可以尝试使用preg_replace()替换所有内部双引号。在此之前,使用preg_match_all()获取另一个数组中的所有引用字符串。最后array_merge()

$string = 'php java "john smith" plugins';
$pattern = '/"(.*?)"/';
preg_match_all($pattern, $string, $quotes_str);
$string = preg_replace($pattern, '', $string);

$arr = array_filter(explode(' ', $string));
$arr = array_merge($arr, $quotes_str[1]);

或者可以使用str_getcsv()

$arr = str_getcsv($string, ' ');

print '<pre>';
print_r($arr);
print '</pre>';