Php 分解字符串以获取关键字(Youtube频道关键字)

Php 分解字符串以获取关键字(Youtube频道关键字),php,youtube,Php,Youtube,我正在开发一个需要youtube api的应用程序 我被困在一个需要youtube频道关键词的地方。我得到一个字符串中的所有关键字 $string = 'php java "john smith" plugins'; 我试图在数组中获取上述关键字。我可以使用explode(“”,$string)但问题是john smith本身就是一个关键字。我希望我的阵列是这样的: array( [0] => 'php', [1] => 'java', [2] => 'jo

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

我被困在一个需要youtube频道关键词的地方。我得到一个字符串中的所有关键字

$string = 'php java "john smith" plugins';
我试图在数组中获取上述关键字。我可以使用
explode(“”,$string)
但问题是
john smith
本身就是一个关键字。我希望我的阵列是这样的:

array(
   [0] => 'php',
   [1] => 'java',
   [2] => 'john smith',
   [3] => 'plugins'
) 
任何快速/肮脏的解决方案都可以解决这个问题,只要给它一个空格作为分隔符就行了

例子: 输出:
可以尝试使用
preg\u replace()
替换所有内部双引号。在此之前,使用
preg\u match\u all()
获取另一个数组中的所有带引号的字符串。最后
array\u merge()

或者可以使用
str\u getcsv()

$arr=str_getcsv($string,”);
打印“”;
印刷费($arr);
打印“”;

Wow。今天学到了一些新东西。太棒了,保罗!谢谢,谢谢你没有勾选答案。你和保罗几乎同时回答。我勾选了保罗的答案,只是为了提高他的声誉几英寸。
$string = 'php java "john smith" plugins';
$array = str_getcsv($string, ' ');
var_export($array);
array (
  0 => 'php',
  1 => 'java',
  2 => 'john smith',
  3 => 'plugins',
)
$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]);
$arr = str_getcsv($string, ' ');

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