我想创建一种机制来替换$menuitem['url']
中的URL链接,例如#link1,#link2,#link3。我花了几个小时搜索路,但我还是很失望。
例如,我需要获取此网址:http://chervo.ideatech.cz/Admin/#link1
而不是当前的:http://chervo.ideatech.cz/Admin/?pg=overview&table=data_obrazky
private function GetHtmlRecursive($arr) {
$html = '';
foreach ($arr AS $item) {
...
...
...
else {
$html .= '<li><a href="'.$item['url'].'">'.$item['nazev'].'</a></li>';
}
}
return $html;
}
private function FillMenuItem(&$menuitem) {
...
...
...
else {
if (isset($menuitem['tab']))
$this->FillByTabdef($menuitem);
if ( (!isset($menuitem['url'])) && (isset($menuitem['tab'])) ) {
$menuitem['url'] = '?pg=overview&table='.$menuitem['tab'];
}
...
...
...
}
}
有没有简单的方法,怎么做?
整个代码在这里:http://codepad.org/DvwPJC1V
答案 0 :(得分:0)
$urls = array('http://chervo.ideatech.cz/Admin/?pg=overview&table=data_obrazky', 'http://chervo.ideatech.cz/Admin/?pg=pickles&table=food', 'http://chervo.ideatech.cz/Admin/?pg=auto&table=cars');
foreach($urls AS $url)
{
//If http_build_url is available
//$parse = parse_url($url);
//unset($parse[PHP_URL_QUERY]);
//$parse[PHP_URL_FRAGMENT] = "link1";
//$newURL = http_build_url($parse);
//var_dump($newURL);
//otherwise do this
$query = parse_url($url, PHP_URL_QUERY);
$newURL = str_replace("?" . $query, "#link1", $url);
var_dump($newURL);
}
尝试使用http://php.net/manual/en/function.parse-url.php之类的内容来识别要替换的网址部分,然后将其替换为简单的字符串替换或可用http://php.net/manual/en/function.http-build-url.php
或者,您只需删除?
字符后的所有内容,然后附加#link1