Ответы пользователя по тегу PHP
  • Как узнать сколько времени прошло time()?

    Вот пример кода
    <?php
    var_dump($t1 = time());
    var_dump($t2 = time());
    var_dump($t2-$t1);
    var_dump(($t2-$t1)/60);

    Вот пример его выполнения
    int(1558597428) int(1558597428) int(0) int(0)

    Вот пример кода
    <?php
    var_dump($t1 = microtime(true));
    var_dump($t2 = microtime(true));
    var_dump($t2-$t1);
    var_dump(($t2-$t1)/60);

    Вот пример его выполнения
    float(1558597524.2313) float(1558597524.2313) float(1.215934753418E-5) float(2.0265579223633E-7)

    Это как раз таки очень маленькие числа.
    Выполнялось на PHP 7.1.18
    Ответ написан
    Комментировать
  • Как правильно вывести результат выполнения php?

    $users у Вас массивом является
    Чтобы добраться до ['surname'] нужно или так $users[0]['surname'] или в foreach его прокручивать
    Ответ написан
    Комментировать
  • Как корректно передать и прочитать id?

    В браузере конечный url у Вас как выглядит? После отрабатывания location который?
    Location:check-ok.php?id='.$users['id'] - есть вероятность что у Вас $users['id'] пустой из за чего он не подставляется.

    Если у Вас в строчке браузера он есть значит всё впорядке и значит передаётся id и должен быть доступен в $_GET["id"]
    Ответ написан
    Комментировать
  • Как сделать авторизацию через VK на PHP с виджетом и сохранением пользователей в базу данных MySql?

    Очень близко к тому что Вам нужно blog.ivru.net/?id=55
    только те моменты где идёт сохранение в битрикс через специальные методы перепишите на сохранение в Вашу базу.
    Ответ написан
    Комментировать
  • Как спарсить текст из тега?

    require_once("curlPro.php");
    $text = new textparser("html который парсим");
    $text->moreone(false);
    $result = $text->parse("itemprop=\"lol\"","/span");
    $tesult = $result->val(); // избавляемся от парсинг объекта получаем текст

    curlpro.ivru.net
    Ответ написан
    Комментировать
  • Как правильно пользоваться composer?

    Если папка vendor у Вас находится в той же директории что и исполняемый скрипт, тогда:
    require_once("vendor/autoload.php");

    далее пишете use если нужно

    Не ответ на вопрос, но если кому либо потребуется установка composer на Centos 7 blog.ivru.net/?id=83
    Ответ написан
  • Нужно создать миниатюру картинок особенным образом?

    доброго времени суток.
    Ранее писал на php код, который берёт из одной папки все изображения, затем ресайзит их в зависимости что больше ширина или высота, а ещё вставляет водяной знак и новые сохраняет в новой папке.
    Только этот скрипт не делает как Вы указываете - вставляет на белый фон, в зависимости от рамеров, при этом функции для того чтобы реализовать как Вам надо в коде есть. Сейчас недостаточно времени чтобы рассказать детальнее, поэтому если разбираетесь в php переделайте под себя(приведённых функций скорее всего достаточно).

    По логике Вам потребуется: определить размеры исходного. В зависимости от них создать размер для нового. Далее отресайзить исходное. Рассчитать координаты для вставки в новое отресайзенного исходного.

    Вот мой код как он был изначально:

    <?php
    function imageresize($outfile,$infile,$neww,$newh,$quality) {
    $im=imagecreatefromjpeg($infile);
    $x = imagesx($im);
    $y = imagesy($im);
    if (($x < 200) and ($y < 200)) {
    return true;
    }
    if (($x < $neww) and ($y < $newh)) {
    $neww = $x;
    $newh = $y;
    }
    $ko = $neww / $x;
    $xx = $x;
    $yy = $y;
    if (($x != $neww) or ($y != $newh)) {
    $xx = $neww;
    $yy = round($y * $ko);
    if ($yy > $newh) {
    $yy = $newh;
    $ko = $newh / $y;
    $xx = round($x * $ko);
    }
    }
    $im1=imagecreatetruecolor($xx,$yy);
    imagecopyresampled($im1,$im,0,0,0,0,$xx,$yy,imagesx($im),imagesy($im));

    // работа с водным знаком
    $wm=imagecreatefrompng('vznak.png');
    $wmW=imagesx($wm);
    $wmH=imagesy($wm);

    $cx = $xx - $wmW - 20;
    $cy = $yy - $wmH - 20;

    imagecopyresampled ($im1, $wm, $cx, $cy, 0, 0, $wmW, $wmH, $wmW, $wmH);

    imagejpeg($im1,$outfile,$quality);
    imagedestroy($im);
    imagedestroy($im1);
    imagedestroy($wm);
    }

    foreach (glob("img/*") as $file) {
    $file = basename($file);
    // $fileto = "newimg/$file";
    $fileto = "newimg/" . strtolower($file);
    $userfile = "img/$file";
    if (imagecreatefromjpeg($userfile)) {
    echo "%5C
    \n";
    imageresize($fileto,$userfile,800,600,85);
    } else {
    echo "bad - $userfile
    \n";
    }
    }
    Ответ написан
    Комментировать
  • Как реализовать использование одинаковых частей html-страницы в MVC?

    Там смотрите. Есть же как бы основной шаблон в который входят всякие модули. Что мешает сделать так как это обычно происходит в cms

    то есть head лежит в основном шаблоне и в нём же размечены модули. А каждый модуль представляет из себя отдельное MVC то есть имеет совй контроллер модель и представление.

    Таким образом у Вас конечная страница собирается из кода основного шаблона + сгерерировавшегося html каждого из модулей которые подставляются в нужное место основного шаблона.

    По коду не привожу примеров в виду их объемности, а так же поскольку конечных решений много больше чем одно.
    Ответ написан
    Комментировать
  • Как спарсить сайт, если на нем JavaScript'ы, которые перекидывают на главную страницу?

    Возможно когда вы выводите информацию вместе с ней выводится и JavaScript.
    То есть делаете к примеру так $html = file_get_contents("http + :// + domen + / + url");// написал в таком формате чтобы ссылкой не заменялось
    затем выводите echo $html;//и получается выводится JavaScript который выполняется и затем например понимая что вы не на том домене перебрасывает Вас на другой сайт.
    Чтобы этого не было при отладке выводите $html так:
    echo htmlspecialchars($html);// то есть экранируйте вывод html тегов
    Ответ написан
    Комментировать
  • Почему выдает ошибку на существующую страницу при парсинге curl?

    Скорее всего не все заголовки передаёте необходимые для того чтобы сервер не считал Вас роботом или что то ещё.
    Попробуйте моей библиотекой curlpro.ivru.net скачиваете её в файл curlPro.php

    Далее так require_once("curlPro.php");// с указанием дирректории куда положили
    $cp = new curlPro();
    $cp->newip("zakupki.gov.ru");// под Ваш случай
    $cp->newuri("/epz/order/quicksearch/search.html");// так же под Ваш случай
    $text = $cp->go();// Здесь парсинг объект
    $text = $text->val();// Избавляемся от парсинг объекта,получаем текстовое значение
    var_dump($text);// или echo смотрите html страницы
    Ответ написан
    Комментировать
  • Нужна ли математика для изучения php языка?

    Математика пригодится в любом языке.
    По PHP могу сказать сказать что: сложение, умножение, деление и вычитание скорее всего потребуются. А вот квадратные уравнения не могу сказать что очень нужны. Поэтому если складывать умеете можете пробовать изучать.
    По опыту могу сказать, что для изучения php нужно выучить примерно 30-50 функций. Зная их можно нормально программировать. И очень важно взять пункт "синтаксис php" и вот именно его выучить наизусть. По книжному объёму это порядка 50 страниц. Остальные функции можно искать в интернет.
    У меня был случай. Основы PHP я рассказал своему знакомому за 2 часа. Этого ему было достаточно чтобы самостоятельно написать потом чат.
    Ответ написан
    7 комментариев
  • Как передать данные формы через ajax?

    Для начала посмотрите что на сервер приходит. Просто впишите вверху php <?php var_dump($_POST);exit;

    И вот что ещё вижу global $link; если у Вас link не создаётся каким то другим скриптом, то у Вас отсутствует mysqli_connect
    Ответ написан
  • PHP кто то писал модуль интеграции со СДЭК?

    Думаю, что нужно по теме написать, что для интеграции(в том числе для калькуляции по ряду тарифов) необходимо иметь договор с СДЕК. Логина и пароля в ЛК не достаточно для интеграции, получив логин и пароль от ЛК СДЕК далее требуется написать на почту integrator@cdek.ru с почты указанной в договоре, в письме указать свой логин в ЛК СДЕК и попросить выдать секретные данные для интеграции интернет магазина с API СДЕК. Если у Вас секретных данных для API нет, то от библиотек толку особо не будет.

    Без секретных данных можно считать например на тарифе с Id=1.

    ______________________________________________________________________________________
    Пример если собираетесь написать свою библиотеку ниже
    ______________________________________________________________________________________
    Вот пример объекта JSON(в виде строки) для запроса:

    $query = '{"version":"1.0","dateExecute":"' . date("Y-m-d",time()+5500000) . '","senderCityId":"164","receiverCityId":"44","currency":"RUB","tariffList":[{"id":1}],"goods":[{"weight":"15","length":"40","width":"50","height":"60"}]}';

    В авторизованном режиме так же требуется добавить в запрос "authLogin":"ЛогинВСДЕК" и "secure":"СекретныйКлючь" перед версией.

    Эта информация пересылается по HTTPS на api.cdek.ru/calculator/calculate_tarifflist.php с обязательным указанием заголовка запроса Content-Type: application/json;charset=utf-8 (я использовал curl)

    В ответ получаем объект в виде строки JSON, var_dump которого выглядит следующим образом:

    object(stdClass)#4 (1) { ["result"]=> array(1) { [0]=> object(stdClass)#2 (3) { ["tariffId"]=> int(1) ["status"]=> bool(true) ["result"]=> object(stdClass)#3 (6) { ["price"]=> string(4) "2210" ["deliveryPeriodMin"]=> int(1) ["deliveryPeriodMax"]=> int(1) ["tariffId"]=> int(1) ["priceByCurrency"]=> int(2210) ["currency"]=> string(3) "RUB" } } } }
    Ответ написан
    Комментировать
  • KPHP - обмен опытом, кто работал?

    Господа, подскажите пожалуйста как на CentOs 6.5 x64 kphp установить

    Сейчас имею следующую проблему:
    [root@centos64 kphp-kdb]# make kphp
    cc -Wall -O3 -m64 -march=core2 -mfpmath=sse -mssse3 -ggdb -fno-strict-aliasing -fno-strict-overflow -fwrapv -DCOMMIT=\"ce6dead5b3345f4b38487cc9e45d55ced3dd7139\" -I common -I binlog -I net -I kfs -I drinkless -I skat -I vv -I objs -I . -c -MP -MD -MF dep/TL/tlc-new.d -MQ objs/TL/tlc-new.o -o objs/TL/tlc-new.o TL/tlc-new.c
    TL/tlc-new.c: In function ‘main’:
    TL/tlc-new.c:73:9: warning: variable ‘expr_filename’ set but not used [-Wunused-but-set-variable]
    char *expr_filename = NULL;
    ^
    cc -Wall -O3 -m64 -march=core2 -mfpmath=sse -mssse3 -ggdb -fno-strict-aliasing -fno-strict-overflow -fwrapv -DCOMMIT=\"ce6dead5b3345f4b38487cc9e45d55ced3dd7139\" -I common -I binlog -I net -I kfs -I drinkless -I skat -I vv -I objs -I . -c -MP -MD -MF dep/TL/tl-parser-new.d -MQ objs/TL/tl-parser-new.o -o objs/TL/tl-parser-new.o TL/tl-parser-new.c
    cc -Wall -O3 -m64 -march=core2 -mfpmath=sse -mssse3 -ggdb -fno-strict-aliasing -fno-strict-overflow -fwrapv -DCOMMIT=\"ce6dead5b3345f4b38487cc9e45d55ced3dd7139\" -I common -I binlog -I net -I kfs -I drinkless -I skat -I vv -I objs -I . -c -MP -MD -MF dep/common/kdb-data-common.d -MQ objs/common/kdb-data-common.o -o objs/common/kdb-data-common.o common/kdb-data-common.c
    cc -Wall -O3 -m64 -march=core2 -mfpmath=sse -mssse3 -ggdb -fno-strict-aliasing -fno-strict-overflow -fwrapv -DCOMMIT=\"ce6dead5b3345f4b38487cc9e45d55ced3dd7139\" -I common -I binlog -I net -I kfs -I drinkless -I skat -I vv -I objs -I . -c -MP -MD -MF dep/common/server-functions.d -MQ objs/common/server-functions.o -o objs/common/server-functions.o common/server-functions.c
    cc -Wall -O3 -m64 -march=core2 -mfpmath=sse -mssse3 -ggdb -fno-strict-aliasing -fno-strict-overflow -fwrapv -DCOMMIT=\"ce6dead5b3345f4b38487cc9e45d55ced3dd7139\" -I common -I binlog -I net -I kfs -I drinkless -I skat -I vv -I objs -I . -c -MP -MD -MF dep/common/crc32.d -MQ objs/common/crc32.o -o objs/common/crc32.o common/crc32.c
    cc -o objs/bin/tlc-new objs/TL/tlc-new.o objs/TL/tl-parser-new.o objs/common/kdb-data-common.o objs/common/server-functions.o objs/common/crc32.o -m64 -ggdb -rdynamic -lm -lrt -lcrypto -lz -lpthread
    /usr/bin/ld: cannot find -lcrypto
    collect2: error: ld returned 1 exit status
    make: *** [objs/bin/tlc-new] Error 1
    [root@centos64 kphp-kdb]# make kphp
    cc -o objs/bin/tlc-new objs/TL/tlc-new.o objs/TL/tl-parser-new.o objs/common/kdb-data-common.o objs/common/server-functions.o objs/common/crc32.o -m64 -ggdb -rdynamic -lm -lrt -lcrypto -lz -lpthread
    /usr/bin/ld: cannot find -lcrypto
    collect2: error: ld returned 1 exit status
    make: *** [objs/bin/tlc-new] Error 1
    Ответ написан