• PHP После substr в строке появляются символы � Что это?

    t-alexashka
    @t-alexashka
    Сразу пишу legacy код
    Возможно вы обрезаете кириллицу. Для нее лучше использовать mb_substr Потому что символы кириллицы занимают больше места, и обычный substr может отрезать половину буквы, что разумеется неправильно отобразиться.
    Ответ написан
    1 комментарий
  • Условие в PHP на основе CSS класса страницы - как можно реализовать?

    KodyWiremane
    @KodyWiremane
    Пони, Debian, LEMP, LAN, любитель
    Проблема в том, что наиболее естественно class body извлекается уже на клиенте, в JavaScript. На стороне сервера, как правильно заметили, лучше всего использовать наиболее естественные для PHP пути: ориентироваться на значение переменной, URL запроса и т. п. Тем не менее, костыль возможен:

    function get_body_classes_from_file(string $filename) {
    
        $page = file_get_contents($filename);
    
        if (!preg_match('#<body[^>]*>#', $page, $matches)) return [];
        $body = $matches[0];
    
        if (!preg_match('#(?<=\sclass=")[^"]*(?=")#', $body, $matches)) return [];
        $class_prop = $matches[0];
    
        $classes = array_filter(explode(' ', $class_prop));
        return $classes;
    
    }


    Включить это в PHP внутри HTML-страницы, далее

    $body_classes = get_body_classes_from_file(__FILE__);
    if (in_array('markerClass1', $body_classes)) {
        // вывод для первой страницы
    } elseif (in_array('markerClass2', $body_classes)) {
        // вывод для второй страницы
    } else {
        // дефолт или ошибки разработчика, если нет обоих классов
    }
    Ответ написан
    Комментировать