谁能告诉我如何从URL中获取YouTube id,而不管URL中有哪些其他GET变量.
用这个视频举例:http://www.youtube.com/watch?v=C4kxS1ksqtw&feature=related
谁能告诉我如何从URL中获取YouTube id,而不管URL中有哪些其他GET变量.
用这个视频举例:http://www.youtube.com/watch?v=C4kxS1ksqtw&feature=related
(几乎任何事情都可以使用正则表达式,但它们很容易出错,所以如果有专门用于您试图实现的PHP函数,请使用它们.)
parse_url接受一个字符串,并将其分割成一个包含大量信息的array.您可以使用此数组,也可以指定所需的一项作为第二个参数.在本例中,我们对查询感兴趣,即PHP_URL_QUERY
.
现在我们有了查询,它是v=C4kxS1ksqtw&feature=relate
,但我们只想要v=
之后的部分.对于这一点,我们转向parse_str
,它的工作原理基本上类似于一根弦上的GET
.它接受一个字符串并创建字符串中指定的变量.在这种情况下,创建$v
和$feature
.我们只对$v
感兴趣.
为了安全起见,您不希望只将parse_url
中的所有变量存储在名称空间中(参见mellowsoon的注释).而是将变量存储为数组的元素,这样您就可以控制要存储的变量,并且不会意外地覆盖现有变量.
把一切放在一起,我们有:
<?php
$url = "http://www.youtube.com/watch?v=C4kxS1ksqtw&feature=relate";
parse_str( parse_url( $url, PHP_URL_QUERY ), $my_array_of_vars );
echo $my_array_of_vars['v'];
// Output: C4kxS1ksqtw
?>
编辑:
呵呵-谢谢查尔斯.这让我发笑,我以前从未见过扎温斯基的名言:
100