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

    Такое требование становится все популярней и популярней среди клиентов, может сеошники советуют. Не знаю криво это или нет, но я хранил описания в базе данных в виде одной строки и каждое отделял точкой с запятой:

    описание один;описание два;описание три

    При помощи php, а именно функции explode разбиваете строку на массив, а дальше просто циклом перебираете весь массив и на каждой итерации выводите изображение с описанием. Но это при условии, что ваши изображения хранятся в нужном порядке, то есть имеют имена 1, 2, 3, 4.

    Если имена изображений не упорядочены, то храните в базе и пути к изображениям, и описания к фото в виде одной строки, то есть:

    name1.jpg;name2.jpg;name3.jpg
    описание один;описание два;описание три

    Также при помощи функции exlode разбиваете на массивы и сливаете в один при помощи функции array_combine. В итоге у вас получится массив из пути к изображениям и описание каждого фото.
    Остается только вывести весь массив на страницу :)
    Ответ написан
    1 комментарий
  • Как получить выдачу google по конкретному городу?

    У гугла есть страничка, на которой описывается несколько примером того, как можно изменить местоположение.

    И там есть такой пункт:

    Вы также можете задать другое местоположение для поиска.
    Для этого укажите его в тексте запроса. Например, с помощью запроса пицца Москва можно найти пиццерию в Москве.

    Вот и пихайте название города в ваш запрос :). Из личного опыта парсинга выдачи гугла по городам, хоть и не столь большого, могу сказать, что работает отлично.
    Ответ написан
    2 комментария
  • Как автоматически сохранить html-страницу в pdf?

    PrinceXML
    Dompdf - а вот статья о библиотеке на хабре

    Ну и как отметил комментатор выше - mPDF, тоже отлично работает.
    Ответ написан
  • Как сделать уникальные просмотры статей по IP адресу?

    Узнаем IP пользователя:

    if (!empty($_SERVER['HTTP_CLIENT_IP'])){
        $ip = $_SERVER['HTTP_CLIENT_IP'];
    }
    elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){
        $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
    }
    else{
        $ip = $_SERVER['REMOTE_ADDR'];
    }


    Предположим, что человек решил обновить страницу, но IP уже есть в вашей базе, следовательно остается только проверить на соответствие и в случае совпадения не засчитывать просмотр.

    $query = mysql_query("SELECT `ip` from `table` where `ip` = '$ip'");
    mysql_fetch_array($query);
    if(isset($query['ip'])){
        // Если ip есть, то не засчитываем
    }else{
        // Иначе засчитываем посещение и делаем sql запрос для увеличение счетчика
    }

    Вы наверное поняли, что для IP адресов вам нужно создать отдельную таблицу в БД и записывать их туда когда пользователь зайдет на страницу в первый раз и тогда после обновления страницы вы уже будете знать, что данный человек посещал страницу.

    Возможно у вас возникнет вопрос об определении IP адреса, мол зачем там аж три разных варианта получения ip. Тык вот $_SERVER['HTTP_CLIENT_IP'] и $_SERVER['HTTP_X_FORWARDED_FOR']) содержат реальный ip адрес пользователя, то есть, если он зайдет к вам, используя прокси сервер, то вы получите не ip прокси, а ip его компа. Но на случай, если в этих двух переменных не будет ip адреса, то воспользуемся $_SERVER['REMOTE_ADDR'].

    Есть еще вариант реализации с привязкой к кукки. Почитайте и попробуйте. Принцип тот же.

    Я думаю, достаточно информации для того, чтобы вы сейчас пошли и сделали уникальный просмотр по IP адресам. Так что дерзайте :). А вообще почитайте о том, как лучше делать уникальные просмотры, ибо делать только по ip адресу не есть корректно.
    Ответ написан
    8 комментариев
  • Почему header не охватывает блоки входящие в него?

    Перед закрывающем header поставьте.

    <div style="clear:both"></div>

    Вы использовали обтекание - float и не закрыли его, поэтому оно воздействует на header.
    Вот - codepen.io/anon/pen/QyxVjL - добавил черный фон, чтобы было видно.
    Ответ написан
    Комментировать
  • Как разделить блок на двое? есть навигация и содержимое нужно разделить на два блока, как сделать?

    Посмотри в сторону скриптов каруселей, например, kenwheeler.github.io/slick.
    Там много демо, уверен это то, что вы хотели. И кстати, не требует каких-либо знаний
    в JavaScript, вставляете и меняете оформление как вам угодно.
    Ответ написан
    Комментировать
  • Как сделать ссылки такого типа, (php)?

    Возможно я не правильно вас понимаю, но предположим, что вы совсем новичок и спрашиваете об этом:

    <a href="http://gameportal.ru/game.php?game=game1">Ссылка на игру 1</a>
    <a href="http://gameportal.ru/game.php?game=game2">Ссылка на игру 2</a>

    И кликнув на такую ссылку у вас откроется страница с нужным вам URL :)

    И дальше вы уже используете GET параметры в своем коде, на PHP это выглядит так:

    $game = $_GET['game']; // получаем название игры из URL

    В переменной $game будет храниться или game1, или game2, в зависимости от ссылки, на которую кликнули.
    Ответ написан
    Комментировать
  • Как в PHP округлить значение до тысячных, например 107115 до 107000?

    echo round(107115,-3);

    Извините, действительно округляет вверх :).
    У функции round есть третий параметр PHP_ROUND_HALF_DOWN,
    он заставляет округлять в низ, но работает вроде только для дробных.

    Можно применит обычную математику. Например так:

    echo 107001 - (107001 % 1000);
    echo 107999 - (107999 % 1000);

    Вычитаем из нашего числа остаток и получаем округленное вниз!
    Ответ написан
    Комментировать
  • .encrypted файлы на сервере?

    Для Windows подобный вирус давно существует, но осенью 2015 появился вирус-шифровальщик и для Linux. Делает он именно то, что вы описали и требует оплаты, после которой вам высылается ключ для расшифровки. И обычно просят оплачивать криптовалютой - биткойнами. Месяца два назад это был 1 биткойн, около 30 тысяч рублей получается. Мой друг не стал платить, обновил систему сервера и проверил файлы сайта, пока что все в порядке. В англоязычном интернете писали, что проникновение вируса не связано с файлами сайта, а имеет иной характер происхождения. Возможно, какой-то софт, поэтому можно посоветовать лишь более внимательно относится к его установке и настройки.

    P.S. А то, что нет бэкапов, это не тру :)
    Ответ написан
    Комментировать