Я хочу знать, что я делаю не так в этом коде.PHP substr от символа
Я пытаюсь создать меню из базы данных, но у меня есть проблема. Некоторые ссылки нормальны, как «index.php», но некоторые выглядят как «browse.php | some.php | other.php» в базе данных. Я хочу отфильтровать это и вернуть все нормальные значения, такие как «index.php» и где появляются «странные ссылки», просто вырезайте что-либо за пределами «|», характер и стать «browse.php». Прямо сейчас, используя код, который я использую, index.php больше не появляется, но проблема с странными ссылками решена. Что я делаю неправильно?
Спасибо за любые предложения ..
$sql = "SELECT * FROM $tablename WHERE `Parent` = '0' AND Type LIKE 'top' ORDER BY `Order` ASC";
$result = mysql_query($sql) or die ("Error: Query Failed! " .mysql_error());
$output = "<ul>";
while ($rs = mysql_fetch_array($result)) {
$output .= "<li class='menu_top' id='".$rs['ID']."'><a href='".substr($rs['Link'], 0, strpos($rs['Link'], '|'))."'>".$rs['Name']."</a></li>";
//$output .= "<li class='menu_top' id='".$rs['ID']."'><a href='".$rs['Link']."'>".$rs['Name']."</a></li>";
$sql2 = "SELECT * FROM $tablename WHERE `Parent` = '".$rs['ID']."' ORDER BY `Order` ASC";
$result2 = mysql_query($sql2) or die ("Error: Query Failed! " .mysql_error());
if (mysql_num_rows($result2) != 0) {
$output .= "<ul class='menu_sub' id='".$rs['ID']."'>";
while ($rs2 = mysql_fetch_array($result2)){
$output .= "<li><a href='".$rs2['Link']."'>".$rs2['Name']."</a></li>";
}
$output .= "</ul>";
}
}
$output .="</ul>";
echo $output;
Explode строку ссылку на «| ', затем используйте 0-й элемент результирующего массива –