• Какие есть библиотеки (php) для парсинга сайтов?

    @vshvydky
    Simple_html_dom, а вообще php далеео не лучший вариант для персинга. Не будет подгружаться динамический дом на яваскрипт.
    Ответ написан
    Комментировать
  • Как избавиться от ERR_TOO_MANY_REDIRECTS при переносе сайта с HTTP на HTTPS на Wordpress?

    Punkie
    @Punkie
    Была точно такая же проблема у меня.

    Добавьте в wp-config.php в самое начало (после <?php ):

    $_SERVER['HTTPS'] = 'on';

    Плюс пониже после define всяких (до текста "/* Это всё, дальше не редактируем. Успехов! */"):

    define('FORCE_SSL_ADMIN', true);
    define('FORCE_SSL_LOGIN', true);
    if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false)
           $_SERVER['HTTPS']='on';


    Если будут проблемы с путями у картинок, поставьте этот плагин:
    https://wordpress.org/plugins/velvet-blues-update-urls/

    И замените http://ваш_домен на https://ваш_домен с его помощью
    Ответ написан
    14 комментариев
  • Как сделать функцию на php глобальной для статического сайта?

    К примеру в файл func.php я написал свою функцию. Как мне сделать, что бы я мог ее использовать без подключения файла (includefunc.php) к примеру) на страницах сайта?

    Посмотрите в сторону директив php.ini:
    auto_prepend_file
    auto_append_file

    Nginx:
    fastcgi_param
    fastcgi_param PHP_VALUE       auto_prepend_file=/var/www/src/func.php;
    fastcgi_param PHP_ADMIN_VALUE auto_append_file=/var/www/src/extrafunc.php;

    Apache:
    Как изменить настройки конфигурации
    <IfModule mod_php5.c>
      php_value auto_prepend_file "/var/www/src/func.php"
    </IfModule>

    func.php
    if (!function_exists('message')) {
        function message()
        {
            $message = 'Just do it!';
            return $message;
        }
    }
    Ответ написан
    Комментировать
  • Почему нет сильной Ecommerce платформы под node.js?

    @SMA2
    На днях перевели высоконагруженный(550,000 товаров и услуг)


    Нагрузка - это не количество товара.
    Для современных баз данных даже на слабом железе это не нагрузка, а смешно.

    Нагрузка - это количество посетителей.
    Даже на 100 товарах если большое количество посетителей нагрузка может быть в разы больше, чем у вас.

    На Ruby, Node, Go, Java, Python как правило делают решения под себя. Готовые - редкость.
    Готовые решения - существуют как правило на PHP.

    Так устроен этот мир.

    Можно, конечно, пофилософствовать о причинах этого, например, об том, что представляет из себя типичный программист, занимающийся той или этой сферой деятельности, и из этого логическим путем вывести, - а почему именно так.

    Или просто смотреть на факту - если вы сделаете полностью готовое решение не на PHP, то с большой вероятностью оно не будет востребовано большим количеством людей, ваши потребители будут только нишевые.

    Отсюда и оборотная сторона - наверняка на Node и пр. есть готовые решения интересующего вас типа. Их просто не может не быть. Просто вы их не нашли. Это не настолько массовый продукт, чтобы на каждом углу об них говорили, как, к примеру, об OpenCart.
    Ответ написан
    Комментировать
  • Объясните человеческим языком, что такое веб-фреймворк на языке php?

    wielski
    @wielski
    ✔ Совет: Вам помогли? Отметьте ответы решением.
    Смогу ли я на фреймворке писать свои модули (любые и любой сложности) для моей CMS. Наверняка не в одном фреймворке нет функции анализа собственного контента (для последующего продвижения) по принципу поисковых роботов. Не помешает ли мне фреймворк создавать такие модули из-за своего ограниченного функционала.

    Нет. Вы не совсем поняли для чего созданы фреймворки. Фреймворк - это база (основа) для вашего приложения либо сайта. Формально фреймворк это готовая структура для более удобной разработки. Интегрировать что-либо на фреймворке в готовую корявую CMS на чистом php смысла нет.

    Смогу ли я совершенствовать любой модуль фреймворка (например добавление комментариев) под свои нужны не мешая его обновлению (если выйдет новая версия). Или придется ли мне все переписывать с выходом новой версии, как это приходится делать на CMS типа DLE.

    Нет нужды переписывать что-то, что уже написано.
    К примеру, если использовать только один из крупных фреймворков на рынке (скажем, Laravel) - можно не бояться совместимости. К примеру, если вы начали писать на 5.0 вы сможете обновиться до 5.1 до потерь, а при обновлении до 5.2 вам надо будет поменять всего две строчки кода в одном единственном файле. При выходе глобальных изменений в документации прикладывают инструкцию для безболезненного перехода.

    На сколько я буду зависеть от выхода новых версий? Например, я хочу сейчас скачать и дальше уже делать с ним что угодно не боясь, как в предыдущем вопросе, что найдут какую-то уязвимость и снова придется его обновлять и переписывать все свои коды в сотнях файлах php.

    Уязвимость не найдут. К примеру, тот же Laravel пережил уже несколько крупных релизов, и разрабатывается пятый год. Защита у него на максимальном уровне, и крупных багов секьюрити с релиза пятой версии не обнаружено. И поверьте мне - не один человек бьются в попытках найти баг в ларавеле, ибо он используется не на одном десятке сайтов. Сайты на нем исчисляются тысячами.

    Можно ли будет (искюча вариант, что я скопирую сайт на локалку и год буду переписывать его с нуля на фреймворк) постепенно, не нарушая работу сайта, перенести собственные CMS на фреймворк учитывая то, что в них десятки модулей, собственные админ панели и т.д.

    При желании можно все. Но архитектура фреймворков, и того же Laravel такова, что изучив и поняв ее вам захочется все написать с нуля. И, поверьте, это у вас займет очень мало времени (по сравнению со временем, которое вы потратили на написание всего с нуля).

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

    Если вы выберите крупного игрока (советую Laravel, опять же) - вам не придется задумываться о его поддержке. Это как минимум open source проект, сотни веб-девелоперов независимо работают над его усовершенствованием, и поддержкой.
    И в случае чего вы так же сможете внести вклад, форкнув проект, внеся свои изменения.

    Удачи вам.
    Ответ написан
    Комментировать
  • Объясните человеческим языком, что такое веб-фреймворк на языке php?

    @Silm
    Вам проще почитать документацию пары тройки популярных фреймворков, сразу все поймете.

    При разработке сайта всегда появляются рутинные задачи. Если пишите сами, то вам надо написать роутинг, надо написать подгрузку классов, MVC, конфигурирование, обертку к БД, обертку к кешу, ..., да даже кучу мелких функций для работы со строками. Либо собрать все это их готовых библиотек.

    В фреймворке все это уже собрано, подробно описано и задокументировано. Хороший фреймворк старается минимально обязать вас к чему то и предоставить максимум гибкости и возможностей. Если вам так надо, можете игнорировать большую часть возможностей фреймворка, а можете вместо каких то его частей использовать сторонние или свои.

    PHP веб фреймворк - это каркас приложения, набор инструментов, набор деталей, набор стандартов, в какой то мере - рабочее пространство.

    Проводя аналогию, если бы PHP разработчик, который все проекты пишет с нуля, был плотником: ему бы пришлось в какой то степени овладеть кузнечным делом, чтобы выковать себе инструмент. Инструмент он изобретал бы сам, поэтому самодельной, уникальной, отверткой не получилось бы закрутить стандартный саморез. И скорее всего в каждом проекте появлялась бы парочка саморезов нового типа + отвертки под них, не совместимые с предыдущими. По той же причине ни у кого бы не получилось с ходу собрать/разобрать/починить его изделие.

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

    Ну и так далее.
    Ответ написан
    Комментировать
  • Объясните человеческим языком, что такое веб-фреймворк на языке php?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Смогу ли я на фреймворке писать свои модули для моей CMS

    Если ваша CMS написана на фреймворке - да. Вполне возможна и частичная интеграция, но это путь боли.

    Наверняка не в одном фреймворке нет функции анализа собственного контента по принципу поисковых роботов.

    Фреймворк - это каркас для построения приложений. Он не решает бизнес задачи, вместо этого - технические.

    Не помешает ли мне фреймворк создавать такие модули из-за своего ограниченного функционала.

    Может помешать только в случае, если принципы принятые в фреймворке противоречат принципам в вашем проекте. Это возможно только если вы явно выбрали не тот фреймворк. Например: для работы с БД у вас во всю используется Doctrine2, вы выбираете фреймворк yii2 и частично переходите на его ActiveRecord - это приведет к большим проблемам.

    Смогу ли я совершенствовать любой модуль фреймворка (например добавление комментариев) под свои нужны не мешая его обновлению.

    Да, форкаете фреймворк, публикуете форк в композере и пишите там все что хотите. При обновлении фреймворка - вливаете изменения в свой форк.

    Или придется ли мне все переписывать с выходом новой версии, как это приходится делать на CMS типа DLE.

    Если у вас зависимость в композере только с последней версией фреймворка - сами себе злобный буратино)). Указывайте фиксированную и обновляйтесь по собственному желанию, либо вовсе не обновляйтесь.

    На сколько я буду зависеть от выхода новых версий?

    Зависимость от новых версий фреймворка - полностью на вас. Как напишите так и будете зависеть))

    Например, я хочу сейчас скачать и дальше уже делать с ним что угодно не боясь, как в предыдущем вопросе, что найдут какую-то уязвимость и снова придется его обновлять и переписывать все свои коды в сотнях файлах php.

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

    Можно ли будет постепенно, не нарушая работу сайта, перенести собственные CMS на фреймворк учитывая то, что в них десятки модулей, собственные админ панели и т.д.

    Да

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

    Можете, форкаете фреймворк и публикуете его в composer. Правда подобная ситуация возможна для фреймворков крайне редко и скорее сигнализирует о том, что вы выбрали хреновый фреймворк.
    Ответ написан
    Комментировать
  • Как выравнять модальное окно вертикально по центру?

    @mr_ko
    Javascript, Node.js. React.js, Vue.js, Wordpress
    Вот такие CSS стили выровняют ровно по центру. Причем ширина и высота не важны (ели они канечно не больше экрана)
    .modal {
        position: absolute;
        left: 50%;
        top: 50%;
        transform: translate(-50%,-50%);
    }
    Ответ написан
    1 комментарий
  • "Используйте кэш браузера". Рекомендация от Google. Пoдскажите добрым словом?

    Я думаю, вы можете смело проигнорировать это предупреждение. Для этих ресурсов уже используется кэш браузера, они кэшируются на 60 минут, это определяется заголовком Expire. Скорее всего, это неадекватный перевод, на самом деле должно быть "используется кэш браузера". Возможно, гугл имеет ввиду, что можно увеличить время кэширования, но для файлов такого размера это во-первых несущественно, во-вторых вы все равно не можете ими управлять, т.к. заголовки, от которых зависит кэширование генерирутся Яндексом.
    Ответ написан
    1 комментарий
  • Как настроить отчет по целям (js click) в Яндекс.Метрике? Где посмотреть клики?

    gy3elka
    @gy3elka
    Веб-аналитик
    Извините за глупый вопрос. А Вы саму цель задали в Настройках счетчика?
    Ссылка здесь https://yandex.ru/support/metrika/reports/add-goals.xml первый пункт.
    Для того, чтобы создать цель Вам нужно перейти в Настройки счетчика, слева выбрать Цели и дальше по инструкции действовать.
    Ответ написан
    4 комментария
  • Почему не удается проверить условие в файле functions.php в wordpress?

    Apathetic
    @Apathetic
    Frontend
    Перепишите функцию, проверка должна проводиться прямо внутри неё:
    function yandex_api() {
        if ( is_home() || is_page( 1825 ) ) {
            wp_enqueue_script( 'yandexmap', get_stylesheet_directory_uri() . '/js/ya-map.js' );
            wp_enqueue_script( 'yandexapi', get_stylesheet_directory_uri() . '/js/yandex-maps.js' );
        }
    }
    add_action( 'wp_enqueue_scripts', 'yandex_api' );
    Ответ написан
    Комментировать
  • Как использовать функции woocommerce?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Так же, как и функции WordPress. Разумеется, если под функциями вы имеете в виду template tags. Например:
    <?php woocommerce_login_form(); ?>
    Обратите внимание на разницу между вашим примером и моим. Имя функции, потом скобки, и обязательно точка с запятой. Почитайте про основы PHP, синтаксис. Функции WooCommerce (как и WP) - это обычные функции, написанные на языке PHP и должны соответствовать его синтаксису.

    ЗЫ: Обычно, если в имени функции есть слово get, это означает, что данная функция не выведет на страницу то, что вы ожидаете, а лишь вернет значение, которое можно далее использовать, например:
    <?php echo get_terms(); ?>
    Этот код принудительно отправит результат выполнения функции на вывод. Или же:
    <?php 
    $terms = get_terms(); // сохранили результат
    echo $terms; // выводим его или делаем что-то еще
    ?>
    Ответ написан
    Комментировать
  • Cannot read property 'top' of undefined?

    archakov06
    @archakov06
    Frontend-разработчик (ReactJS)
    У вас ошибка в scrollTop: $("#scroll-bottom").offset().top-30 надо заменить на $('.scroll-bottom')
    Ответ написан
    Комментировать
  • Как научиться писать такой ООП код?

    @Copperfield
    Android dude
    Мне в школе физрук говорил:"Чтобы много подтягиваться - нужно много подтягиваться".
    Ответ написан
    Комментировать
  • Что использовать в качестве админки для лендинга?

    agmegadeth
    @agmegadeth
    Веб-разработчик в дизайн студии
    Для лендосов как раз юзаю GetSimple. Ибо:
    1) без бд - установка, клонирование и бекап делается копипастом файлов.
    2) Довольно удобная система разметки блоков для редактирования юзером (theme components вроде называется). Она позволяет любой участок шаблона вынести в отдельный компонент и назвать его. Так выношу заголовки и тексты в эти компоненты. Неопытным юзерам проще в нужном компоненте поменять текст, чем лезть в полную верстку.
    3) интеграция верстки - 10 минут времени.

    Считаю излишним юзать cms типа wp для лендов.
    Ответ написан
    Комментировать
  • Почему PHP не выводит никаких ошибок?

    mcmraak
    @mcmraak
    php+sql+js+bicycle+crutches
    PHP : Включить показ предупреждений и ошибок PHP

    Включение вывода всех ошибок и предупреждений в файле php.ini
    error_reporting = E_ALL
    display_errors = On
    display_startup_errors = On

    Включение вывода всех ошибок и предупреждений в коде PHP-скриптов
    Включить вывод уведомлений и предупреждений можно, добавив в начало нужного .php файла следующие строки:

    ini_set('error_reporting', E_ALL);
    ini_set('display_errors', 1);
    ini_set('display_startup_errors', 1);

    Включение вывода всех ошибок и предупреждений в файле .htaccess
    php_value display_errors 1
    php_value display_startup_errors 1
    php_value error_reporting E_ALL
    Ответ написан
    3 комментария
  • Я изучаю PHP... Нужно ли мне изучать Codeigniter?

    @Inv3go
    Просто смешно такое читать. Раньше это было забавно, а сейчас от такого плакать хочется.
    HTML & CSS это крайне простые вещи, им можно обучить любого человека за неделю (без шуток, девушка не имея даже в школе уроков информатики за неделю-полторы смогла создавать обычные статичные странички типа такой, но не SPA, а с обычным скроллом c2b1ab1fca194bda9e3f58e69f802830.jpg ) , HTML-"программисты" всегда вызывали смех у тех кто знаком с областью.
    Затем, изучение языков ничего не дает, изучить синтаксис того же php можно за неделю-две неспешными темпами, но программировать это не научит, язык это лишь средство. Программирование это нечто иное, алгоритмы, базы данных, ооп, паттерны, проектирование и куча других вещей, а не только язык. Попугая можно научить повторять слова, но разговаривать от этого он не начнет.
    Хватит уже считать что изучив смешные HTML&CSS научились чему-то серьезному, это не сложнее Word & Excel, хотя наверное перегнул палку, Word & Excel сложнее будут.
    Нужны ли фреймворки? Javascript - язык, jquery - фреймворк и думаю становится очевидно что фреймворк упрощает некоторую работу на некотором языке, но можно вполне и без него обойтись.
    Ответ написан
    6 комментариев
  • Как правильно генерировать шрифт для сайта через fontsquirrel?

    kn1ght_t
    @kn1ght_t
    открой сгенерированный css-файл и напиши одинаковые названия у всех шрифтов из одного семейства и меня непосредственно уже font-style/font-weight в зависимости от названия шрифта, например:

    @font-face {
        font-family: 'pf';
        src: url('pfbaguesanspro-bold_0.eot');
        src: url('pfbaguesanspro-bold_0.eot?#iefix') format('embedded-opentype'),
             url('pfbaguesanspro-bold_0.woff2') format('woff2'),
             url('pfbaguesanspro-bold_0.woff') format('woff'),
             url('pfbaguesanspro-bold_0.ttf') format('truetype');
        font-weight: 700;
        font-style: normal;
    }
    
    @font-face {
        font-family: 'pf';
        src: url('pfbaguesanspro-light.eot');
        src: url('pfbaguesanspro-light.eot?#iefix') format('embedded-opentype'),
             url('pfbaguesanspro-light.woff2') format('woff2'),
             url('pfbaguesanspro-light.woff') format('woff'),
             url('pfbaguesanspro-light.ttf') format('truetype');
        font-weight: 300;
        font-style: normal;
    }
    
    @font-face {
        font-family: 'pf';
        src: url('pfbaguesanspro-medium.eot');
        src: url('pfbaguesanspro-medium.eot?#iefix') format('embedded-opentype'),
             url('pfbaguesanspro-medium.woff2') format('woff2'),
             url('pfbaguesanspro-medium.woff') format('woff'),
             url('pfbaguesanspro-medium.ttf') format('truetype');
        font-weight: 600;
        font-style: normal;
    }
    
    @font-face {
        font-family: 'pf';
        src: url('pfbaguesanspro-regular.eot');
        src: url('pfbaguesanspro-regular.eot?#iefix') format('embedded-opentype'),
             url('pfbaguesanspro-regular.woff2') format('woff2'),
             url('pfbaguesanspro-regular.woff') format('woff'),
             url('pfbaguesanspro-regular.ttf') format('truetype');
        font-weight: normal;
        font-style: normal;
    }


    а вообще шрифт Roboto есть в гугл фонтс, проще через него подключить
    p.s. поменяй "нечего" в профиле своем на "ничего" ))
    Ответ написан
    9 комментариев
  • Нормальные ли это цены за час работы?

    roman_vebs
    @roman_vebs
    Web-программист
    Это нормальная цена, но всегда стоит смотреть на портфолио и если сами разбираетесь хоть не много в коде надо заглянуть внутрь его компонентов и шаблонов - все станет понятно много это или нет.

    Для тех кто считает, что 1С - это плохо и люди работающими с ними плохие - если бы продукты не были востребованы, то и не было бы специалистов по этим платформам, а если он востребован, значит выполняет свои задачи от начала и до конца. Я это к тому, что Yii круче, чем Битрикс, но не везде его уместно использовать, как и Битрикс - каждой задаче свой инструмент и подход, а школьниками всех называть и недопрограммистами - это мягко говоря не профессионально.
    Ответ написан
    Комментировать
  • Как удалить повторяющиеся значения из массива?

    65536
    @65536
    $has = array();
    $output = array();
    
    foreach ( $input as $data )
    {
        if ( !in_array($data['clothes_name'], $has) )
        {
            $has[] = $data['clothes_name'];
            $output[] = $data;
        }
    }
    Ответ написан
    Комментировать