Ответы пользователя по тегу PHP
  • Как выкачивать страницы второго уровня simple_html_dom.php?

    Decadal
    @Decadal
    //в теле цикла
    $linkPage = file_get_html($element->href);
    // и лучше сделать рекурсивно - оформить парсинг страниц как функцию, принимающую html и кинуть этот контент в неё же 
    //а это для решения вашей задачи
    file_put_contents(<хэш имени файла>, $linkPage);

    если вам нужно спарсить не только страницу, но и всё, на что ссылается целевая страница, то лучше использовать cURL. По крайней мере, если уровень вложенности будет больше двух.
    Ответ написан
    Комментировать
  • Как сказать серверу, что все абсолютные пути должны начинаться с текущей директории?

    Decadal
    @Decadal
    опция DocumentRoot определяет где лежат файлы для веб доступа. Обычно эта опция находится в файле:
    /etc/apache2/httpd.conf или /etc/apache2/apache.conf
    если её там нет, то добавить в файл конфигурации строку
    DocumentRoot "C:/Sites/home/localhost/www"
    или
    DocumentRoot "/var/www/your_domain/a/b"
    после чего перезагрузить апач
    возможно, это подойдёт для решения вашей проблемы
    Ответ написан
    3 комментария
  • Будет ли выполнятся PHP скрипты при закрытие веб страницы?

    Decadal
    @Decadal
    1) Браузер или его альтернатива отправляет запрос на сервер. 2) Сервер обрабатывает запрос (этот момент и есть началом работы php-скрипта). 3) Сервер возвращает ответ на запрос (факт отправки ответа говорит о том, что php-скрипт прекратил своё выполнение, т.е., результатом выполнения php-скрипта есть ответ браузеру).

    Если вы не дождались ответа от сервера и покинули страницу, но скрипт ещё выполнялся, то он продолжает своё выполнение до тех пор, пока не превысит лимит отведенного времени либо пока не выполнится, но вы результат выполнения словить уже не сможете. При возврате на страницу запустится тот же скрипт в другом потоке, с самого начала.
    А то, о чем пишите вы, не означает, что php-скрипту обязательно работать всё то время, которое пользователь не находится на связи. Непрерывное выполнение сценария это уже в сторону веб-сокетов.
    Ответ написан
    Комментировать
  • Пустой аргумент в методе?

    Decadal
    @Decadal
    учитывая то что по умолчанию в функции render $actionData = [], вы подразумеваете, что это нормально. Нет возможности выбирать, какому параметру оставлять значение по умолчанию, а какому присваивать, поэтому выживаем как можем
    upd:
    если вас этот факт смущает, сделайте часть параметров передаваемыми через ассоциативный массив.
    и будет у вас
    function render($actionView, $params = []) {
    // понеслось 
     $actionData = (isset($params["actionData"]) && $params["actionData"]) 
     ? $params["actionData"]
    : [];
    //и тд
    }
    Ответ написан
    Комментировать
  • Форма обратной связи на php работает не корректно. В чем может быть проблема?

    Decadal
    @Decadal
    собственно, я не нашел даже где используется номер телефона при обработке запроса. Как будто он там никогда не был нужен, но вот понадобился, и его добавили на клиент-сайд, а про сервер забыли.
    Либо вы пытались передать телефон слитно с сообщением? для этого стоит писать разные имена для элементов форм, иначе $_POST["txtDescription"] будет содержать значение только того элемента с именем "txtDescription", который встретился самый крайний раз.

    upd:
    собственно, что делать:
    в первую очередь, исправляем
    <input name="txtDescription" id="txtDescription" class="form-control" placeholder="89651572788" required  title="89651572788" />

    вот эту штуку, а конкретнее: name="txtDescription"
    мы заменяем на name="phone"
    все, теперь клиент будет кидать на сервер данные с телефоном.
    В серверной части:

    $strMessage = nl2br($_POST["txtDescription"]);  
    //после этой строки добавляем следующее:
    $phone = $_POST["phone"]; 
    // тут желательно пихнуть регулярку для проверки телефона, но если вы не поняли, что это значит, не обращайте внимания.


    Все, на сервере теперь есть информация о телефоне. Главный вопрос: что с ней делать?

    можно прикрепить к письму, после текста:
    $strMessage.= "<br /> Обращаться по телефону: ". $phone; 
    //это добавлять сразу после $phone = $_POST["phone"];


    можно прикрепить к теме:

    $strSubject.= " связь: ".$phone;
    и тому подобные действия, смотря что вам нужно
    Ответ написан
    3 комментария
  • Что значит var в коде?

    Decadal
    @Decadal
    var это сокращение от variable, "переменная". Генераторы документации используют некоторые стандарты для оформления комментариев к коду; в данном случае таким образом сообщается, что ниже идет описание переменной, а далее следует тип переменной. Это всё является комментарием и может быть удалено\изменено как вам угодно
    Ответ написан
    Комментировать
  • Как должен выглядеть код?

    Decadal
    @Decadal
    Учитывая постановку вопроса... Раз вы работаете с финансовыми данными, текст программы должен выглядеть вообще не так. Нужно использовать хоть какое-то экранирование sql запроса(PDO хотя бы). Просто имейте в виду, что этот текст небезопасен.
    Ответ написан
    Комментировать
  • Проблема с кодировкой?

    Decadal
    @Decadal
    1) Убедитесь в том, что запись попадает в базу данных в той же кодировке, с которой работает база данных
    2) убедитесь в том, что текст сценария находится в той же кодировке, которая используется в п. 1.
    3) убедитесь в том, что данные приходят в той же кодировке, что и п. 1 и п. 2
    Ответ написан
    Комментировать
  • Как организовать возможность скачивания файла из профиля на языке PHP?

    Decadal
    @Decadal
    А если речь идёт о файлах, которыми пользователь мог поделиться с ограниченным числом других пользователей, то можно так
    e79321da27d6c7b2cf1166c874de5390.png

    upd: после реоргазинации базы данных, перед тем как решить, дать скачать файл или нет, сначала обрабатываете данные пользователя, запросившего файл, потом ищите его в списке тех, с кем файлом поделились, затем - ссылку на файл, если пользователь в том списке (это обычный запрос к таблице shared_file) либо сообщение об ошибке
    Ответ написан
    Комментировать