Задать вопрос
Ответы пользователя по тегу PHP
  • Как добавить html код для каждой страницы с определенным url?

    shambler81
    @shambler81 Куратор тега htaccess
    bash find+sed был у меня сайт на статике 75К страниц ;) вот это было весело.
    как минимум для этого поменяйте на всвех страничках футер и хедер через инклуды на пхп.
    Так можно будет вносить хоть какие-то правки как минимум в меню не бегая по каждой страничке.
    Да и такие вопросы можно будет дешево решать
    Ответ написан
    Комментировать
  • Почему неправильно работает код?

    Такие простые задачи GPT4 решает быстрей чем вы пишете задачу на тостере.
    Просто скопировал ваш
    Есть массив гороскопов. Пользователь вводит дату рождения в input и после отправки должен определиться его знак зодиака и выводится предсказание для этого знака на текущий день.

    <?php
    echo '<form action="" method="GET">';
    echo '<input type="date" name="birthday" required>';
    echo '<input type="submit" value="Отправить">';
    echo '</form>';
    
    $horoscopes = [
        'Овны' => 'найдите в себе желание радоваться этой жизни, даже если не очень хочется.',
        'Тельцы' => 'сегодня даже работа ответит Вам взаимностью.',
        'Близнецы' => 'умерьте аппетиты и не выходите за рамки разумного.',
        'Раки' => 'вы в отличной физической форме и преодолеете все препятствия.',
        'Львы' => 'у Вас есть тактика, вот её и придерживайтесь.',
        'Девы' => 'кто-то захочет совершить нападение на Ваше сердце.',
        'Весы' => 'настроение будет на высоте, а этого уже достаточно.',
        'Скорпионы' => 'все бонусы этого дня будут поджидать Вас вечером.',
        'Стрельцы' => 'наслаждайтесь моментом, а о будущем Вы ещё успеете подумать.',
        'Козероги' => 'соблюдайте сегодня максимально дружелюбный вид.',
        'Водолеи' => 'впечатлений, полученых сегодня Вам хватит надолго.',
        'Рыбы' => 'звёзды дают зелёный свет на новые знакомства.',
    ];
    
    if (isset($_GET['birthday'])) {
        $birthday = new DateTime($_GET['birthday']);
        $monthDay = (int)$birthday->format('md');
    
        $zodiac = '';
        if ($monthDay >= 321 && $monthDay <= 419) {
            $zodiac = 'Овны';
        } elseif ($monthDay >= 420 && $monthDay <= 520) {
            $zodiac = 'Тельцы';
        } elseif ($monthDay >= 521 && $monthDay <= 620) {
            $zodiac = 'Близнецы';
        } elseif ($monthDay >= 621 && $monthDay <= 722) {
            $zodiac = 'Раки';
        } elseif ($monthDay >= 723 && $monthDay <= 822) {
            $zodiac = 'Львы';
        } elseif ($monthDay >= 823 && $monthDay <= 922) {
            $zodiac = 'Девы';
        } elseif ($monthDay >= 923 && $monthDay <= 1022) {
            $zodiac = 'Весы';
        } elseif ($monthDay >= 1023 && $monthDay <= 1121) {
            $zodiac = 'Скорпионы';
        } elseif ($monthDay >= 1122 && $monthDay <= 1221) {
            $zodiac = 'Стрельцы';
        } elseif ($monthDay >= 1222 || $monthDay <= 119) {
            $zodiac = 'Козероги';
        } elseif ($monthDay >= 120 && $monthDay <= 218) {
            $zodiac = 'Водолеи';
        } elseif ($monthDay >= 219 && $monthDay <= 320) {
            $zodiac = 'Рыбы';
        }
    
        if ($zodiac) {
            echo "$zodiac: " . $horoscopes[$zodiac];
        } else {
            echo 'Не удалось определить Ваш знак зодиака.';
        }
    }
    ?>
    Ответ написан
    Комментировать
  • Как обеспечить невозможность извлечения шрифтов с сайта?

    shambler81
    @shambler81 Куратор тега htaccess
    Видел такое извращение на сайте, возможно
    значит смотри как это было, некая утилита весь шрифт перегоняла в картинки ;( все это переверстывалось и пол сайта был в картинках, но какое же это извращение, тут проблема в тз поскольку не имеет смысла.
    Ответ написан
    Комментировать
  • Как мне для разных сайтов использовать свой php.ini?

    Можно прям тут.
    Опять же у каждого сайта будет свой юзер и група
    listen = /var/lib/php7.4-fpm/web2.sock
    listen.owner = web2
    listen.group = www-data
    listen.mode = 0660
    
    user = web2
    group = client2
    
    pm = dynamic
    pm.max_children = 10
    pm.start_servers = 2
    pm.min_spare_servers = 1
    pm.max_spare_servers = 5
    pm.max_requests = 0
    
    chdir = /
    
    env[HOSTNAME] = $HOSTNAME
    env[TMP] = /var/www/clients/client2/web2/tmp
    env[TMPDIR] = /var/www/clients/client2/web2/tmp
    env[TEMP] = /var/www/clients/client2/web2/tmp
    env[PATH] = /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    
    
    php_admin_value[mbstring.func_overload] = 2
    php_admin_value[default_charset] = utf-8
    php_admin_value[max_input_vars] = 10000
    php_admin_value[max_file_uploads] = 500
    php_admin_value[max_execution_time] = 300
    php_admin_value[post_max_size] = 1040M
    php_admin_value[upload_max_filesize] = 1040M
    php_admin_value[pcre.backtrack_limit] = 1000000
    php_admin_value[pcre.recursion_limit] = 100000
    php_admin_value[realpath_cache_size] = 2048k
    php_admin_value[mbstring.internal_encoding] = UTF-8
    php_admin_value[date.timezone] = Europe/Moscow
    php_admin_value[memory_limit] = 256M
    php_admin_value[zend_extension] = opcache.so
    php_admin_flag[opcache.enable] = 1
    php_admin_value[opcache.memory_consumption] = 2048
    php_admin_value[opcache.interned_strings_buffer] = 512
    php_admin_value[opcache.max_accelerated_files] = 100000
    php_admin_flag[opcache.max_wasted_percentage] = 1
    php_admin_flag[opcache.validate_timestamps] = 1
    php_admin_flag[opcache.revalidate_freq] = off
    php_admin_flag[opcache.fast_shutdown] = 1
    php_admin_flag[opcache.save_comments] = 1
    php_admin_flag[opcache.load_comments] = 1
    php_admin_flag[opcache.revalidate_freq] = off
    php_admin_flag[mail.add_x_header] = On
    php_admin_flag[short_open_tag] = On
    Ответ написан
    Комментировать
  • Как сделать на PHP редирект на другой сервер с сохранением домена?

    В общем это не пхп конечно должен делать
    но если уж прям так хочется на нем то https://github.com/zounar/php-proxy
    ну и балансируйте как вам там будет угодно
    я через него деалал пару раз такие тз как, "Эхочу старые урлы на старом движке а новые на новом".
    соответственно пихаешь в 404 вот эту штуку и смотришь не отдаст ли там 200, ну если и там нет то 404 отдавал.
    В вашем случае по другому, но как ни странно с небольшим допилом работало.
    Ответ написан
    Комментировать
  • Где пропустил ошибку не получаю второй?

    $re = '/href="([^"]+)"/m';
    $str = '</span></div></div><a href="/player/harry-kane/108579"><div cursor="pointer" display="flex" class="sc-hLBbgP sc-eDvSVe izqzSd fRddxb">
    
    </span></div></div></div></div></a><a href="/player/heung-min-son/111505"><div cursor="pointer" display="flex" class="sc-hLBbgP sc-eDvSVe izqzSd fRddxb">';
    
    preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);
    
    // Print the entire match result
    var_dump($matches);
    Ответ написан
    Комментировать
  • Как правильно настроить .htaccess?

    shambler81
    @shambler81 Куратор тега htaccess
    Господа еще раз, я уже не знаю в какой
    RewriteRule- вообще не знает про GET, ну не является он по его мнению частью урла от слова совсем.
    Осознав эту мысль вы с легкостью поймете что утверждение
    RewriteRule ^cases/$ 
    RewriteRule ^cases/(.*)$
    RewriteRule ^cases/?id=dsfasdfasdfadsfsdaf$

    ОДИНАКОВЫ, если мы говорим про гет параметры.

    А вот если бы вы написали
    RewriteCond %{REQUEST_URI} ^case.php$ 
    RewriteCond %{QUERY_STRING} (^|&)id\=title-of-case($|&)
    RewriteRule   ........

    ТО смогли бы поставить условие по этому GET параметру.
    Но не удалить его, поскольку он опять же не попадает в RewriteRule

    Просто же удалить GET можно очень не очевидным способом.
    RewriteRule было стало? [QSA,L]
    Знак вопроса не опечатка, именно он в конце удалит гет папраметры с урла.
    л -логика ;) логика
    Логика mod_rewrite требует особого вида мышления ;)
    Ответ написан
    Комментировать
  • Как перенаправить ответ Curl'a клиенту?

    Ниче не понял но вот вам про курл пхп и полные заголовки.
    https://gist.github.com/lemmycaution/3818359
    https://github.com/zounar/php-proxy
    Удобная вещь для подобных извращений.
    Ответ написан
    Комментировать
  • Как объедеить запросы и выполнить один SQL запрос и затем получить результат в виде значений переменных PHP?

    Тебе нужно собрать собственный массив с этими данными.
    1 способ так себе, но рабочий создаешь массив и пихаешь в него эти данные в том формате что тебе нужно.
    Если совсем топорно то
    SELECT v.product, v.link, v.link FROM v_product v WHERE v.id = 5463 ORDER BY v.product ASC;
    ->
    $row[product]
    SELECT i.id as info_id, i.link_to_site FROM infograph v WHERE id = 5463;
    ->
    $row[infograph]и так далее.
    это совсем утрировано, все зависит от того что ты хочешь. Мысль в том что массив можно изменять и дописывать в него другими селектами

    2. но как правило просто используют JOIN в mysql К примеру LEFT JOIN Тем самым ты собираешь данные из разных таблиц в одну притом можешь управлять что с какйо стороны будет появляться, дабы потом просто выплевывать в foreach уже в виде готовых данных.

    Вот пример не шибко хороший но для принципа пойдет.
    мы выбераем нужные поля в одной таблице не беря лишнего, и берем нужные поля с другой таблицы.
    На выводе получается только те данные что нам нужны не берутся лишние ни с той ни с той таблицы.

    SELECT 
    	b.bid AS nid, 
    	b.text AS field_text_tgb_value, 
    	b.url AS field_tgb_url_value, 
    	b.footer AS field_tgb172_footer_value, 
    	b.zeropixel AS field_tgb172_zero_value, 
    	b.header_text AS title, 
    	b.filename AS filepath 
    FROM `ad_banners` b 
    JOIN `ad_c` a ON `b`.`bid` = `a`.`bid`
    WHERE 
    	`a`.`start_date`<from_unixtime(UNIX_TIMESTAMP(), '%Y-%m-%d %H:%i') AND
    	`a`.`end_date`>from_unixtime(UNIX_TIMESTAMP(), '%Y-%m-%d %H:%i') AND
        `a`.`ban_type` = '1' /* 1 - 172, 2 - 250, 3 - 330 */ AND
    	`a`.`w_site` = '$safesite' /* какой сайт 1 - НК, 2 - СПБ, 3 - поселок */ AND
    	`b`.`slider` = '0' /* указано, что не первый в слайдере! */
    	AND `a`.`stopflag` < 1
    ORDER BY RAND()
    LIMIT 0, 1");


    Попробуй вникнуть в смысл того что получается.
    Советую тебе крепко разобраться с этим вопросом, прям вникнуть, поскольку это тебе понадобится не то что часто а вообще каждый день.
    Сразу желательно без использования вот таких вещей как SELECT * и тд.
    ТО есть получать только те данные которые тебе нужны из неескольких таблиц а не собирать просто все таблицы в кучу.

    6361296a15eb7594616807.jpeg

    А вот тебе видео чтоб совсем не запутаться
    https://youtu.be/PTAkqURmI0s
    Ответ написан
  • Как сделать, чтобы изменения php.ini входили в силу?

    shambler81
    @shambler81 Куратор тега Linux
    Запусти phpinfo и посмотри какой реально используется ини файл.
    Вообще то вот лично у меня на сервере их окол 31 штуки.
    там как -бы для каждой версии и каждолго представления пхп отдлеьный. да и отдельно для каждого сайта можно назначить.
    Так что давай как посмотри какой реально ини используется там сразу вверху написано.
    Ответ написан
    Комментировать
  • Не работает php в apache2 ubuntu?

    ispconfig3 - 1 клик у тебя веб сервер с веб интерфейсом.
    aapanel - 1 клик у тебя веб сервер с веб интерфейсом.
    vestacp 1 клик у тебя веб сервер с веб интерфейсом.
    brainycp.com - 1 клик у тебя веб сервер с веб интерфейсом.
    Но ты решил пойти другим путем, понимаю...
    Ответ написан
    Комментировать
  • APACHE htaccess как вывести php текстом?

    <IfModule mod_mime.c>
            AddType text/plain .php .php3 .php4 .php5 .php6 .phtml .pl .asp .aspx .cgi .exe
    </IfModule>
    Ответ написан
    Комментировать
  • Как правильно составить регулярку для извлечение страны из домена?

    https://regex101.com/r/G5GaJX/1
    В примере сделана проверка на www ее просто исключаем.
    https://regex101.com/r/FYZx4q/1
    тут дополнительно проверяем что в конце наш основной домен

    https://regex101.com/r/dClrVg/1
    Объединяем оба правила и выделяем только "регион" как вы выразились
    Ответ написан
    Комментировать
  • Как сделать редирект get запросов в ЧПУ?

    shambler81
    @shambler81 Куратор тега htaccess
    GET не является частью урла и не попадает в RewriteRule
    RewriteCond %{QUERY_STRING} (?:^|&)q\=(.+)(?:$|&)
    RewriteRule ^site\.ru/index\.php$ /site.ru/%1? [L,R=301]
    Ответ написан
  • Как заменить урлы всех страниц в определенной категории на алиасы из базы данных?

    shambler81
    @shambler81 Куратор тега htaccess
    вам нужен ЧПУ
    вариантов миллион
    https://rio-shaman.ru/razrabotka-cms/uluchshenija/...?
    Ответ написан
    Комментировать
  • Не передается GET параметр с настройками htaccess?

    shambler81
    @shambler81 Куратор тега htaccess
    [L,QSA]
    QSA - сохраняет гет параметры.
    НЕ забывайте что с точки зрения mod_rewrite GET вообще не является частью урла и выделяется вообще через
    QUERY_STRING
    Опять же то что вы делаете похоже на кривую поделку ЧПУ
    Ответ написан
    Комментировать
  • Как убрать ошибку при установке PHP?

    на винду можно поставить уже готовое решение что-то вроде openserver или Денвер, вот смысл писать самодельные костыли на инвалидную ос ( рамках вбе разработки)
    Ответ написан
    Комментировать
  • Какие режимы работы PHP и Apache выбрать?

    Сверху вниз по производительности, дальше писать не стал
    nginx+fpm
    nginx+apache+PHP-FPM
    nginx+apache+FastCGI
    apache+PHP_FPM

    0_5f6d74b3e52860caf9d1a94b304a335a.png
    Ответ написан