За последние 24 часа нас посетили 50911 программистов и 1738 роботов. Сейчас ищут 897 программистов ...

Как оптимизировать код

Тема в разделе "PHP для новичков", создана пользователем kams, 22 янв 2016.

  1. kams

    kams Новичок

    С нами с:
    18 дек 2015
    Сообщения:
    25
    Симпатии:
    0
    Есть блок 10 ссылок, они равны значениям переменных.
    Необходимо в зависимости от того где находится человек выводить 4 ссылки, но НЕЛЬЗЯ выводить ссылку на себя, и выводить нужно строго следующие 4 ссылки.
    Я сделал так:
    Код (PHP):
    1. <?PHP
    2. $d1 = '[url="http://url.ru/diagnostika-dvigatelya.html"]Диагностика двигателя[/url]<br />';
    3. $d2 = '[url="http://url.ru/diagnostika-podveski"]Диагностика подвески[/url]<br />';
    4. $d3 = '[url="http://url.ru/diagnostika-tormoznoy-sistemy.html"]Диагностика тормозов[/url]<br />';
    5. $d4 = '[url="http://url.ru/diagnostika-sistemy-ohlazhdeniya"]Диагностика охлаждения[/url]<br />';
    6. $d5 = '[url="http://url.ru/diagnostika-elektriki-avtomobilya.html"]Диагностика электрики[/url]<br />';
    7. $d6 = '[url="http://url.ru/diagnostika-rulevogo-upravleniya.html"]Диагностика рулевого управления[/url]<br />';
    8. $d7 = '[url="http://url.ru/diagnostika-sistemy-zazhiganiya.html"]Диагностика зажигания[/url]<br />';
    9. $d8 = '[url="http://url.ru/diagnostika-toplivnoy-sistemy.html"]Диагностика топливной системы[/url]<br />';
    10. $d9 = '[url="http://url.ru/diagnostika-akpp-mkpp-transmissii.html"]Диагностика АКПП МКПП[/url]<br />';
    11. $d10 = '[url="http://url.ru/diagnostika-vyhlopnoy-sistemy.html"]Диагностика выхлопной системы[/url]<br />';
    12.  
    13.     switch ($_SERVER[REDIRECT_URL])
    14.     {
    15.             case '/diagnostika-dvigatelya.html' : 
    16.             echo 'Похожие услуги:<br />'.$d2.$d3.$d4.$d5;
    17.         break;
    18.             case '/diagnostika-podveski.html' : 
    19.             echo 'Похожие услуги:<br />'.$d3.$d4.$d5.$d6;
    20.         break;
    21.             case '/diagnostika-tormoznoy-sistemy.html' : 
    22.             echo 'Похожие услуги:<br />'.$d4.$d5.$d6.$d7;
    23.         break;
    24.             case '/diagnostika-sistemy-ohlazhdeniya.html' : 
    25.             echo 'Похожие услуги:<br />'.$d5.$d6.$d7.$d8;
    26.         break;
    27.             case '/diagnostika-elektriki-avtomobilya.html' : 
    28.             echo 'Похожие услуги:<br />'.$d6.$d7.$d8.$d9;
    29.         break;
    30.             case '/diagnostika-rulevogo-upravleniya.html' : 
    31.             echo 'Похожие услуги:<br />'.$d7.$d8.$d9.$d10;
    32.         break;
    33.             case '/diagnostika-sistemy-zazhiganiya.html' : 
    34.             echo 'Похожие услуги:<br />'.$d8.$d9.$d10.$d1;
    35.         break;
    36.             case '/diagnostika-toplivnoy-sistemy.html' : 
    37.             echo 'Похожие услуги:<br />'.$d9.$d10.$d1.$d2;
    38.         break;
    39.             case '/diagnostika-akpp-mkpp-transmissii.html' : 
    40.             echo 'Похожие услуги:<br />'.$d10.$d1.$d2.$d3;
    41.         break;
    42.             case '/diagnostika-vyhlopnoy-sistemy.html' : 
    43.             echo 'Похожие услуги:<br />'.$d1.$d2.$d3.$d4;
    44.         break;
    45.     }
    46.  
    47. ?>
    Но как сделать чтобы это работало автоматически? ато будет 11 ссылок, мне везде править нужно будет... как то опыта мало не знаю какие функции использовать.

    Подсказка от модератора:
    Любой код или текст конфигурации пишите между тегом [code=php] и [/code].
    Используйте отступы в коде для форматирования текста.
    Это помогает быстрее понять вас, увеличивает шанс на получение ответа.
    Что выделять? Например: PHP, HTML, CSS, JavaScript, SQL, XML, .htaccess, ini, регулярные выражения, код шаблонизаторов, результаты array/object dump и т. д.
     
  2. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    тыж программист! надо поставить условие "если А не равно Б". детали реализации зависят от твоего контекста.

    Добавлено спустя 1 минуту 13 секунд:
    "…/diagnostika-dvigatelya.html" — эти страницы сделаны на PHP или как?
     
  3. kams

    kams Новичок

    С нами с:
    18 дек 2015
    Сообщения:
    25
    Симпатии:
    0
    ЯЖЖЖЖЖ начинающий)) спасибо за ответ.

    Нет статические страницы. Но там везде подключен этот код.
    Сейчас и сделано условием если ты на такой то странице то выводи то-то. НО это ТО-ТО я не хочу писать в ручную все время, как сделать чтобы это ТО-ТО сначала выводило .$d1.$d2.$d3.$d4, при следующем условии выводило .$d2.$d3.$d4.$d5
     
  4. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    не делай миллион переменных, загони одинаковые данные в массивы и выводи по условия например
     
  5. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    тебе ни кто не говорил о существовании такой штуки как массив?
    тебе ни кто не говорил о существовании такой штуки как цикл?
     
  6. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    Ну не торопитесь наезжать. Человек новичек, разместил тему в подходящем разделе для новичков.

    Мне всё-таки непонятно, если это адреса статических страниц, то мы никак не можем автоматизировать там что-то на PHP. Противоречие вижу я.
     
  7. kams

    kams Новичок

    С нами с:
    18 дек 2015
    Сообщения:
    25
    Симпатии:
    0
    Вот я и говорю! Но автоматизировать то можно ведь вывод именно 4 ссылок? чтобы не вручную писать...

    Суть ещё раз, пусть будет:
    10 картинок.
    Есть 10 страниц, к которым относятся эти картинки.
    Надо на каждой странице вывести по 4 картинки, НО не выводить ссылку на себя, и выводить строго, если мы на странице 1, то 2-3-4-5 картинку, если мы на страницу 2, то 3-4-5-6 картинку.
     
  8. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Код (PHP):
    1. $images = [
    2. 1 => ['1', '2', '3'],
    3. 2 => ['4', '5', '6'],
    4. ];
    5. if ($page == 1) {
    6.   foreach ($images[$page] as $key => $value) {
    7.     # code...
    8.   }
    9. } 
     
  9. kams

    kams Новичок

    С нами с:
    18 дек 2015
    Сообщения:
    25
    Симпатии:
    0
    Тоже самое получается... миллион if будет, и изначально в массиве задавать все надо.
     
  10. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    $images[$page] это разве не заменяет миллион if? Ключи массива меняем на название файлов, а $page берём из $_SERVER['SCRIPT_NAME']