我有piwik访客数据的数据库。 Piwik在仪表板中的关键字旁边显示关键字位置,但此值未保存在数据库中。 Piwik通过搜索google referrer网址动态显示位置“cd =”值,该值是给定关键字的关键字位置。
我想在我的小组中做同样的事情。
我从谷歌获取所有引用网址,而不是通过&登录。
我遇到的问题是某些url字符串包含cd =作为第4个键,有些作为第5个键。
如何从像这样的数组中找到并打印所有cd =值?:
Array
(
[0] => http://www.google.com/url?sa=t
[1] => rct=j
[2] => q=keyword%20one
[3] => source=web
[4] => cd=1
[5] => ved=0CC0QFjAA
[6] => url=http%3A%2F%2Fwww.domain.com%2F
[7] => ei=RqmrUbP0Muf1igKr_4GYAQ
[8] =>
)
Array
(
[0] => http://www.google.com.au/url?sa=t
[1] => rct=j
[2] => q=
[3] => esrc=s
[4] => source=web
[5] => cd=3
[6] => ved=0CDUQFjAC
[7] => url=http%3A%2F%2Fwww.domain.com%2F
[8] => ei=2nKsUbTYB8m3rgfNtoC4DA
[9] => usg=AFQjCNEQgdDpqHBsfjeEBKoyKONAG-pepg
[10] => bvm=bv.47244034,d.bmk
[11] => cad=rja
)
由于
答案 0 :(得分:2)
我建议您使用&
和parse_url
parse_str
进行拆分
$parts = parse_url($url);
$query = array();
parse_str($parts["query"], $query);
然后您可以使用
访问'cd'值$query["cd"];
答案 1 :(得分:0)
恼人地命名parse_str
解析查询字符串,可以改为使用:
$args = parse_str($queryStr);
$cd = $args['cd'];
答案 2 :(得分:0)
你应该使用php函数array_search
。来自official documentation:
array_search - 在数组中搜索给定值,如果成功则返回相应的键
mixed array_search ( mixed $needle , array $haystack [, bool $strict = false ] )
示例:强>
<?php
$array = array(0 => 'blue', 1 => 'red', 2 => 'green', 3 => 'red');
$key = array_search('green', $array); // $key = 2;
$key = array_search('red', $array); // $key = 1;
?>
答案 3 :(得分:0)
因为您的值存储在键4或键5中 $ explode_array = explode('=',arr [4]); 要么 $ explode_array = explode('=',arr [5]);
if(($ explode_array [0] =='cd')&amp;&amp; is_numeric($ explode_array [1])) echo“CD value =”。$ explode_array [1];