Как присвоить #sth строке?

Я хотел бы создать механизм для замены URL-ссылки в $menuitem['url'] для чего-то вроде этого — # link1, # link2, # link3. Я провел пару часов с поиском пути, но я все еще разочарован.

Например, мне нужно получить этот URL: http://chervo.ideatech.cz/Admin/#link1

вместо текущего: http://chervo.ideatech.cz/Admin/?pg=overview&Таблица = 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&amp;table='.$menuitem['tab'];
}
...
...
...
}
}

Есть ли простой способ, как это сделать?

Весь код здесь: http://codepad.org/DvwPJC1V

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 чтобы определить части URL, которые вы хотите заменить, либо замените его простой строкой replace, либо, если доступно http://php.net/manual/en/function.http-build-url.php

В качестве альтернативы вы можете просто удалить все после ? персонаж затем добавить #link1

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]