Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
182 / 182 / 83
Регистрация: 18.02.2014
Сообщений: 867

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

19.12.2014, 14:25. Показов 592. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет, дайте совет, быть может можно как то оптимизироват?
Суть того что $slugCheck содержит короткий путь страницы. Если вдруго когда то будет такая же страница, добовляю _1 в конец. В итого если первый раз /test-message , то во второй раз будет уже /test-message_1 и т.д.
Всё работает на ура, но чёт мне кажется другой кто увидет это, сойдёт сума

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
if (!empty($slugCheck)) {
            $add = ""; // prefix _
            $lenght = strlen($slugCheck); 
            $repleaceFrom = strpos($slugCheck, "_");
 
            //Add prefix if repeatable
            if ($repleaceFrom) {
                $repleaceFrom += 1;
            } else {
                $add = $repleaceFrom ? "" : "_";
                $repleaceFrom = $lenght;
            }
 
            $repleaceCount = $lenght - $repleaceFrom;
            $slugNumber = substr($slugCheck,$repleaceFrom,$repleaceCount) +1;
            $slugName = substr($slugCheck,0,$repleaceFrom);
            $slugFullName = $slugName . $add .''.$slugNumber;
 
            return $slugFullName;
        }
 
        return $slug;
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.12.2014, 14:25
Ответы с готовыми решениями:

Оптимизировать код
Проверка существования переменной $_POST. Если она есть, то задаем $comm; если $comm пустая или слишком большая, или не существует -...

Оптимизировать код
$country = clearData ($_POST ); $city = clearData ($_POST ); $price = clearData ($_POST , "i"); $description = clearData ($_POST ); ...

Оптимизировать код
function test($ts) { if(isset($_GET) { $a = $_POST; $a =...

9
775 / 444 / 93
Регистрация: 24.10.2012
Сообщений: 3,240
Записей в блоге: 5
19.12.2014, 14:46
Может быть вот так:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
if( !empty($slugCheck) ) {
    
    $add = '';
    
          $lenght = strlen($slugCheck); 
    $repleaceFrom = strpos($slugCheck, "_");
 
    if ($repleaceFrom) {
        
        $repleaceFrom += 1;
    } else {
        
                 $add = $repleaceFrom ? '' : '_';   
        $repleaceFrom = $lenght;
    }
    
    $repleaceCount = $lenght - $repleaceFrom;
    
       $slugNumber = substr($slugCheck, $repleaceFrom, $repleaceCount) + 1;
         $slugName = substr($slugCheck, 0, $repleaceFrom);
     $slugFullName = $slugName . $add .''. $slugNumber;
    
    return $slugFullName;
}
 
return $slug;
http://framework.zend.com/manu... style.html

Добавлено через 1 минуту
Второе дело это алгоритм. Можно оптимизировать алгоритм и соотв. этому переделать код.
0
182 / 182 / 83
Регистрация: 18.02.2014
Сообщений: 867
19.12.2014, 14:54  [ТС]
tolimadokara,Спасибо. Именно алгоритм я имел ввиду.
А насчёт кода учимся привыкать к PSR , всё равно зачастую проскакивает что то где от ) Но SonarQube всегда в помощь )
0
775 / 444 / 93
Регистрация: 24.10.2012
Сообщений: 3,240
Записей в блоге: 5
19.12.2014, 15:20
Цитата Сообщение от xpoince
tolimadokara,Спасибо. Именно алгоритм я имел ввиду.
А что делает ваш модуль код которого вы выложили? Можете понятно и сжато объяснить?

Может быть оптимизируем ваш код .
1
182 / 182 / 83
Регистрация: 18.02.2014
Сообщений: 867
19.12.2014, 15:36  [ТС]
tolimadokara, На странице будет что то вроде артикулов. К примеру 3 места для них.
Сам модуль непосредственно функции add/delete/update/view и get, set доп. параметры.
Когда идёт добавление артикула, то создаётся имя для обрашения к нему. К примеру Hello cyberforum, то в базу у меня залетает hello-cyberforum ( Ну и ещё данные ) . Если я ещё раз буду добовлять Hello cyberforum, то уже будет hello-cyberforum_1, ну что бы разлечать их.
Вариант, создать список, что бы просто поставили 3 галочки, тех артикулов которые нужны вывести, не устраевает, мол - мы привыкли уже так, название ссыкли и 3 input куда их вводить ( и вот упёрлись, не переубедить ).

А алгоритм хочу оптемезировать, для следующих программистов. Просто думаю, через месяц я уже сам не вспомню что это чудо делает. Есть и комментарии ( Не эти что я скинул // prefix _ и //Add prefix if repeatable ), но их как правило просто пролистываеш, так как код больше говорит (не всегда, но полезно бывает, когда в помойке ковыряешся ) .
0
775 / 444 / 93
Регистрация: 24.10.2012
Сообщений: 3,240
Записей в блоге: 5
19.12.2014, 15:52
А что обозначает $slug* в названии ваших переменных?
0
182 / 182 / 83
Регистрация: 18.02.2014
Сообщений: 867
19.12.2014, 15:55  [ТС]
tolimadokara, Синономы - короткое имя.
0
775 / 444 / 93
Регистрация: 24.10.2012
Сообщений: 3,240
Записей в блоге: 5
19.12.2014, 16:01
В названии переменных вы используете слово repleace. Такого слова нет в английском языке. Правильное слово это replace. Без буквы "e".

Добавлено через 5 минут
Честно, не могу понять что делает ваш модуль, в первом сообщении. Он просто создает разные строки с префиксами?

Вроде hello-cyberforum_1, hello-cyberforum_2, ... hello-cyberforum_n?

И что это за строка? Она добавляется в таблицу?
0
182 / 182 / 83
Регистрация: 18.02.2014
Сообщений: 867
19.12.2014, 16:18  [ТС]
Цитата Сообщение от tolimadokara Посмотреть сообщение
В названии переменных вы используете слово repleace.
Опечатка )
Цитата Сообщение от tolimadokara Посмотреть сообщение
И что это за строка? Она добавляется в таблицу?
Да, именно так. Потом просто вводиш в админке hello-cyberforum_1, hello-cyberforum_2, hello-cyberforum_3 и эти 3 артикула будет видны на странице ) .
А двишок(MVC) видемо ктото давно написал и решил побыстрей впарить ) вот теперь надо работать с тем что есть )
0
19.12.2014, 16:35

Не по теме:

Вечерком зайду на кибер форум.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.12.2014, 16:35
Помогаю со студенческими работами здесь

Помогите оптимизировать код
Помогите пожалуйста оптимизировать код: $text = "Наконец, самое важное, что должен учесть создатель сайта, — это сохранение...

Где научиться оптимизировать код?
Подскажите хорошие уроки, желательно на русском, по отладке ошибок ПХП, нахождение, исправление ошибок, ускорение работы сервера,...

Как можно оптимизировать этот код?
Как можно оптимизировать этот код? $preview = 'preview.'; $preview_url = 'images/' . $folder . '/' . $preview; if ( file_exists(...

Навигация по сайту. Как оптимизировать и уменьшить код
Придумываю навигацию по сайту. Вот что вышло, как уменьшить может в массив засунуть кто подскажет? <? echo '<a...

Оптимизировать код парсинга страниц. Используется SimpleHtmlDom
Как оптимизировать подобное: $url2=('http://cайт1/'); $table2 = array(); $data2 = file_get_html($url2, false, $context); ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru