Ответы пользователя по тегу PHP
  • Как наладить отправку почты после обновления PHP до 5.6?

    ivankomolin
    @ivankomolin
    Найдите в /etc/sysconfig/saslauthd следующую строку
    FLAGS=
    И замените ее на
    FLAGS=-r

    И перезапустите
    /etc/init.d/saslauthd restart

    Это даст возможность проходить аунтификацию
    Ответ написан
  • Откуда огромная разница в скорости ответа сервера?

    ivankomolin
    @ivankomolin
    Скорее всего запрос в бд составлен так, чтобы работало кеширование, это очень хорошо, но создает видимость, что 2ой запрос выполняется быстро.
    Необходимо смотреть в сторону оптимизации запроса, структуры таблицы.
    Ответ написан
    Комментировать
  • Как узнать, что адресат открыл письмо?

    ivankomolin
    @ivankomolin
    Хм...
    Кажется на сегодняшний день аудит-пиксель(он же скрытое изображение) это единственный способ узнать, что адресат открыл письмо.
    Ответ написан
    7 комментариев
  • Не срабатывает php скрипт по CRON?

    ivankomolin
    @ivankomolin
    А вы пробовали запустить эти команды в консоли от пользователя, которому принадлежит указанный crontab?
    Ответ написан
  • Оператор clone в php: как работает?

    ivankomolin
    @ivankomolin
    Это сделано для того, чтобы при клонировании объекта Person, одно из его свойств(которое является объектом) тоже было клонировано.

    Пример:
    $person1 = new Person;
    //Например $person1->address это объект со свойством id = 1
    $person2 = clone $person1;
    //Устанавливаем свойство id для объекта $person2->address
    $person2->address->id = 2;
    echo $person1->address->id; //выведет 1
    echo $person2->address->id; //выведет 2


    Теперь представим что public function __clone() {} внутри класса Person нет
    $person1 = new Person;
    //Например $person1->address это объект со свойством id = 1
    $person2 = clone $person1;
    //Устанавливаем свойство id для объекта $person2->address
    $person2->address->id = 2;
    echo $person1->address->id; //выведет 2
    echo $person2->address->id; //выведет 2

    Т.к. объект Address не был клонирован, мы обращаемся к одному и тому же объекту Address
    Ответ написан
    Комментировать
  • Как обрезать строку в php?

    ivankomolin
    @ivankomolin
    preg_replace('/^(.*?)\s+(?:DVDScr|CAMRip|WEBRip|BDRip).*$/isu', '$1', $text);

    Сюда: DVDScr|CAMRip|WEBRip|BDRip можно добавлять новые слова-границы через |


    Пример:
    $text = 'Великий уравнитель / The Equalizer (2014) BDRip от HQ-ViDEO | Лицензия';
    var_dump(preg_replace('/^(.*?)\s+(?:DVDScr|CAMRip|WEBRip|BDRip).*$/isu', '$1', $text));die;

    Выведет:
    string(58) "Великий уравнитель / The Equalizer (2014)"
    Ответ написан
    2 комментария
  • Могут ли возникнуть дубли хешей?

    ivankomolin
    @ivankomolin
    Если кто-то узнает это:
    Генерирую так:
    $hash = hash('crc32b', md5($client_email.$id_item));

    То сможет получить доступ к любому кабинету зная только email пользователя.
    Это не очень хорошо.

    В таких случаях нужно делать так:
    1. При создании пользователя генерируете "токен" по которому можно заходить без пароля, например так:
    $hash = hash('crc32b', md5(uniqid(rand(), true)));
    2. При каждом заходе пользователя в кабинет по этому "токену" меняете его.

    Ну а чтобы не получилось одинаковых "токенов", нужно при создании/смене "токена" проверять на наличие такого же. Т.е. генерировать "токен" до тех пор пока он не будет уникальным, тогда и записывать в бд.
    Ответ написан
    2 комментария
  • Php pcre - как осуществить поиск совпадений с подмаской?

    ivankomolin
    @ivankomolin
    $text = '<p>Аналитики Марк Стэнсер, Билл Эдэйр, Аарон Кролик и Прашант Камалакантан изучили, каких digital-инструментов не хватает в современных СМИ и ньюзрумах. Результаты исследования они опубликовали под неоднозначным названием «<a href="http://www.goatmustbefed.com/">Козлов надо кормить</a>». Редакция ЦП представляет самые интересные тезисы из этого исследования.</p><div><p><a href="http://www.rtdna.org/article/newsroom_staffing_stagnates#.U1lBpMZUMZc">обнадеживающую статистику</a> роста цифровых просмотров, существует ряд барьеров, которые сдерживают проникновение digital-инструментов в современных службы новостей.</p><h2>Барьеры приоритетов</h2><p>Аналитики отмечают, что по мнению главных редакторов СМИ и продюсеров медиа-ресурсов, digital &mdash; это дополнительные «свистелки», дополняющие традиционный формат подачи новостей и не имеющие права на существование в качестве отдельной формы.</p><p>Это приводит к тому, что команды digital-специалистов занимаются «репродукциями», а не созданием оригинального контента. Вместо историй в интерактивном формате и качественной инфографики как самостоятельного жанра они создают цифровые копии аналоговых новостей. Эффективность такой «работы» с digital-инструментами невелика.</p><h2>Организационные барьеры</h2><p>У новостников часто не хватает технических навыков для того, чтобы совместить производство и распространение контента с запросами аудитории, рекламодателей и подписчиков. Особенно если речь заходит о мобильных платформах, интерактивных сайтах и «сторителлинге».</p><p>Системы публикации, редактирования и совместного создания контента нуждаются в квалифицированной поддержке. Также надо учитывать рекламные метрики, показатели посещаемости, особенности работы тех или иных движков и удобство их использования журналистами и редакторами.</p><h2>Спрос на журналистику данных</h2><p>Один из главных приоритетов сейчас для СМИ &mdash; журналистика данных и создание интерактивных историй. Инфографика, интерактивная хроника и динамические диаграммы способны рассказать о политических или экономических событиях намного больше, чем скучный «сухой» текст с парой статичных картинок.</p><p>Визуализация историй и сочетание традиционных обо журналистских приемов с цифровыми технологиями, взятыми у блогов и социальных сетей, &mdash; залог интереса пользовательской аудитории и повторного потребления одного и того же контента в течение длительного времени.</p><p>Именно поэтому репортер, который способен использовать инструменты редактирования и оформления цифрового контента, сейчас ценнее, чем репортер с диктофоном, который просто пишет тексты без навыков использования digital.</p><h2>Инструменты, которые стоит взять на вооружение</h2><p>Для начала работы с digital аналитики рекомендуют новостникам использовать следующие инструменты:</p><ul> <li><a href="http://www.google.com/get/mediatools/">Google Media Tools</a> &mdash; набор инструментов для анализа и управления данными, позволяющий генерировать карты и графики на основе массива собранной информации;</li><li><a href="http://www.tableausoftware.com/public/">Tableau Public</a> &mdash; анализ данных и создание диаграмм и разных визуализаций, которые можно встроить в любой сайт;</li><li><a href="http://quartz.github.io/Chartbuilder/">Chartbuilder</a> &mdash; для быстрого построения графиков;</li><li><a href="http://www.documentcloud.org/">DocumentCloud</a> &mdash; для публикации документов и примечаний к ним с возможностью поделиться данными с аудиторией, разместив ссылку или встроив документ прямо в текст новости;</li><li><a href="https://www.overviewproject.org/">The Overview Project</a> &mdash; инструмент сочетание для приемов категоризации массива документов, включая возможность импорта из DocumentCloud;</li><li><a href="http://tabula.nerdpower.org/">Tabula</a> &mdash; для упрощения процесса извлечения данных из PDF-файлов, которые подлежат анализу;</li><li><a href="http://pandaproject.net/">PANDA Project</a> &mdash; инструмент для создания цифровой библиотеки для ньюзрума, с помощью которого публикациями, файлами и выдержками из документов можно поделиться совсеми журналистами в команде;</li><li><a href="http://projects.knightlab.com/projects/TimelineJS">TimelineJS</a> &mdash; способ создать интерактивную хронику, добавляемую на сайт новостного ресурса, телеканала или радиостанции. Позволяет собрать разные виды материалов из социальных медиа, ссылки на публикации в микроблогах и видеоролики.</li></ul></div>';
    if (preg_match_all('/((?:(?:(?:\s+|^)(?:\w{0,3}(?:\s+|$))*)*)(?:сочетание|традиционных|журналистских|приемов|всем))+/usi', $text, $match)) {
        var_dump($match[0]);die;
    }


    Результат
    array(3) {
      [0]=>
      string(96) " и сочетание традиционных обо журналистских приемов"
      [1]=>
      string(41) " сочетание для приемов"
      [2]=>
      string(8) "всем"
    }
    Ответ написан
    Комментировать
  • Как реализовать обмен данными между двумя сайтами через POST-запрос?

    ivankomolin
    @ivankomolin
    Самое простое в вашем случае это зациклить отправку запроса до тех пор пока не получите "нужный" ответ. Для паузы между запросами в php есть функция sleep().
    Но все таки советую присмотреться к кролику.
    Ответ написан
    Комментировать