PHP Breadcrumb
-
25-09-2019 - |
سؤال
حصلت على هذا الرمز من شخص ما وهو يعمل بشكل جيد للغاية ، أريد فقط إزالة الرابط من العنصر الأخير من المصفوفة:
//get rid of empty parts
$crumbs = array_filter($crumbs);
$result = array();
$path = '';
foreach($crumbs as $crumb){
$path .= '/' . $crumb;
$name = ucfirst(str_replace(array(".php","_"),array(""," "), $crumb));
$result[] = "<a href=\"$path\">$name</a>";
}
print implode(' > ', $result);
سيؤدي ذلك إلى إخراج ذلك على سبيل المثال: المحتوى> مشترك> ملف
أرغب فقط في إزالة الرابط من العنصر الأخير - "ملف" ليكون مجرد نص عادي .. حاولت نفسي حساب عناصر الصفيف ، ثم إذا كان عنصر الصفيف هو الأخير ثم لطباعة نص عادي .. لكني ما زلت لا ، لم أتمكن من الحصول على نتيجة مناسبة ..
شكرًا لك!
المحلول
هذا يجب أن يعمل:
$crumbs = array_filter($crumbs);
$result = array(); $path = '';
//might need to subtract one from the count...
$count = count($crumbs);
foreach($crumbs as $k=>$crumb){
$path .= '/' . $crumb;
$name = ucfirst(str_replace(array(".php","_"),array(""," "), $crumb));
if($k != $count){
$result[] = "<a href=\"$path\">$name</a>";
} else {
$result[] = $name;
}
}
print implode(' > ', $result);
نصائح أخرى
يمكنك ببساطة تعديل التعليمات البرمجية الحالية لاستخدام حلقة "طبيعية" (بدلاً من التكرار foreach) لتحقيق ذلك.
علي سبيل المثال:
//get rid of empty parts
$crumbs = array_filter($crumbs);
$result = array();
$path = '';
$crumbCount = count($crumbs);
for($crumbLoop=0; $crumbLoop<$crumbCount; $crumbLoop++) {
$path .= '/' . $crumbs[$crumbLoop];
$name = ucfirst(str_replace(array(".php","_"),array(""," "), $crumbs[$crumbLoop]));
$result[] = ($crumbLoop != $crumbCount -1) ? "<a href=\"$path\">$name</a>" : $name;
}
print implode(' > ', $result);
NB: ليس لدي إمكانية الوصول إلى PHP في الوقت الحالي ، لذلك قد لا يكون ما سبق خاليًا من الأخطاء ، ولكن يجب أن تحصل على الفكرة.
for($i=0;$i< sizeof($crumbs);$i++) {
$path .= '/' . $crumbs[$i];
$name = ucfirst(str_replace(array(".php","_"),array(""," "), $crumbs[$i]));
if ($i != sizeof($crumbs)-1) {
$result[] = "<a href=\"$path\">$name</a>";
}else {
$result[] = $name;
}
}
لا تنتمي إلى StackOverflow