Ответы пользователя по тегу PHP
  • Интересные проекты и библиотеки для PHP и JS. Кто может посоветовать?

    Вот тут www.phpclasses.org есть интересные классы и библиотеки для PHP, а тут www.jsclasses.org для JS. А вообще это все дело можно смотреть на гитхабе.
    Ответ написан
    Комментировать
  • Как организовать админ-панель?

    Писать CMS и не зная на чем и как писать? Да еще и отдать это клиенту? Вы что совсем с ума сошли? Нет, написать свою CMS это правильно, но не более чем на локалхосте, так, для опыта. А здесь лучше использовать что-то простое, например Wordpress. Пост по созданию сайта (шаблона) на Wordpress посмотрите на хабре.

    UPD: объясняю, почему создавать CMS с нуля плохая затея. Судя по заданным вами вопросам у вас мало опыта по программированию в данной области. Чтобы писать CMS нужно знать что такое MVC, паттерны проектирования, шаблонизаторы, SQL-Injection и еще словарь всяких подобных терминов. Даже если получится написать "что-то свое" то это как минимум будет "дырявым" и клиента будут взламывать по первому чиху.
    Ответ написан
    2 комментария
  • Как присвоить класс странице, в зависимости от URL?

    Первое что пришло в голову это разбить URL по слэшу и заменить например на тире:

    <?php if ( stripos($_SERVER["REQUEST_URI"], '/catalog') ) {
       $aCatalogURL = explode('/', $_SERVER["REQUEST_URI"]);
    ?> class="<?=implode('-', $aCatalogURL)?>-page" <? } ?>


    Но будьте внимательны, вам нужно будет очистить URL (строку, или массив, полученный после explode от лишнего мусора), то есть у вас например URL yourdomain.com/content/catalog/1/2/?sort=price&ord... то нужно чтобы URL стал таким catalog/1/2, только потом разбивать на массив.

    В итоге классы получатся такими:

    URL: catalog
    Класс: catalog-page

    URL : catalog/1/2
    Класс: catalog-1-2-page

    UPD: Если нужно чтобы у всех подкатегорий был один класс, то тогда еще проще, код будет такой:

    <?php if ( stripos($_SERVER["REQUEST_URI"], '/catalog') ) { ?> class="catalogpage" <?php }  ?>
    Ответ написан
    Комментировать
  • Возможен ли хайлоад на больших фреймворках?

    Highload очень интересное направление. Неплохой цикл статей был в журнале Хакер номер 02/2012 (если не ошибаюсь) от монстров высоконагруженных систем - Highload Lab (Highload).
    Так устроен мир программистов, что зачастую проще написать свое, чем дорабатывать чужое решение. Фреймворки создаются для удобства и многие из них не рассчитаны на масштабирование (кластеризацию), да в них есть возможность включить кеширование, но кэширование только отсрочит проблему, в итоге нужно будет заниматься рефакторингом кода, прикручивать разные акселлераторы, но всё прийдет к кластеризации (масштабированию) проекта на другие сервера. Я знаю только один фреймворк, который позволяет делать масштабирование - Битрикс. И как работает это масштабирование я знаю в теории.
    Припоминаю ситуацию, когда фреймворк переписывался под высокие нагрузки (это был Yii по-моему). Также существует мнение что MVC не лучшая модель для хайлоад. В общем нужно смотреть по ситуации.

    Еще про хайлоад популярных проектов можете почитать тут.

    Потратьте день своего времени на освещение этой интересной темы, и сможете ответить на многие ваши вопросы.
    Ответ написан
    Комментировать
  • Как установить модуль "Торговый каталог" на 1С-Битрикс: Управление сайтом 14.0.15 ?

    В административной панели зайдите Настройки -> Настройки продукта -> Модули, если в этом списке нет модуля "Торговый каталог", значит вашей редакцией не предусмотрен данный модуль (модуль "Торговый каталог" доступен с редакции "Малый бизнес"), если он будет в списке и будет установлен, то у него будет статус "установлен" и этот модуль можно будет удалить, если не установлен, то будет статус "не установлен" и кнопка "установить".
    Ответ написан
    Комментировать
  • PHP. Как лучше всего проверить существует ли сайт или нет

    Делал такую реализацию на PHP, вот рабочий код:

    <?

    $website = «www.site.ru»
    // Открываем соединение с сокетом и связываем его с переменной
    $sock = fsockopen ($website, 80, $errno, $errstr);
    //Если соединение не установлено, то будет ошибка
    if (!$sock)
    {
    echo("$errno($errstr)");
    return;
    }
    //Иначе проверяем доступность ресурса и записываем результат
    else
    {
    fputs ($sock, «GET / HTTP/1.0\r\nHost: www.example.com\r\n\r\n»);
    $status = substr(str_replace(":",":      ", fgets($sock,128)), 9);
    if(substr($status,0,6)!=«200 OK»)
    echo «Сайт недоступен!»
    }
    //Закрываем соединение
    fclose ($sock);

    ?>
    Ответ написан
    3 комментария