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

    KorsaR-ZN
    @KorsaR-ZN
    Вам принципиально разные ссылки нужны? это для SEO плохо.
    Если не обязательно разные ссылки, то определяйте по параметру cookie, а если он пустой то по UserAgent'у, после чего вешаете нужный кук и подменяете шаблон вывода, НО обязательно оставьте кнопку переключения вручную между версиями.

    Еще вариант по разрешению экрана, но для это нужно загрузить пустую страницу, если cookie не задан, получить нужные параметры отправить на сервер, повесить нужный кук, после чего сделать reload page, только по UserAgent'у отфильтровывайте поисковики, что бы для них не крутить логику определения типа устройства. (для каждого поисковика на их офф. страницах или в гугле можно найти значение UserAgent'ов для поисковиков)
    Ответ написан
  • Phalcon или просто php?

    KorsaR-ZN
    @KorsaR-ZN
    А как он может быть лучше чистого PHP?
    Это же просто фрейм, который быстрее других фреймов за счет того, что он на Си и более оптимизированный по расходу памяти!

    А вот логику вашего приложения Вы все равно будете делать на PHP используя готовые компоненты из фрейма, так что Вопрос не корректный, нельзя сравнивать язык и фреймворк.

    Выигрыш относительно других фреймворков написанных на PHP очевиден!
    А если вы будете писать на чистом PHP вы в той или иной степени реализуйте свой мини фрейм, так что выбор в сторону Phalcon будет плюсом, т.к Вам не придется изобретать велосипед. (если конечно Ваш проект не тривиален или узкоспециализирован, где лучше будет написать свое, но тогда там можно и выбор языка пересмотреть)
    Ответ написан
  • Как отправить POST запрос PHP?

    KorsaR-ZN
    @KorsaR-ZN
    Через curl можно отправить:

    $params = [
    'numb1' => 'one',
    'numb2' => 'two'
    ];
    
    if ($ch = curl_init()) {
       curl_setopt($ch, CURLOPT_URL, 'http://example.com/index.php');
       curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
       curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
       curl_setopt($ch, CURLOPT_POST, true);
       curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
    
       $result = curl_exec($ch);
       curl_close($ch);
    }
    Ответ написан
    6 комментариев
  • Как сделать дублирующий домен на сайт?

    KorsaR-ZN
    @KorsaR-ZN
    В настройках Вашего сервера сделайте домен site2.ru алиасом для site1.ru.
    • Для apache это директива ServerAlias;
    • Для nginx это директива server_name, через пробел добавьте туда домен site2.ru;

    В DNS пропишите для второго домена (site2.ru) A-запись ссылающуюся на IP Вашего сервера.
    @ A IP-Address

    Ответ написан
    Комментировать
  • PHP -> Регулярные выражения -> Как найти лишнее в коде?

    KorsaR-ZN
    @KorsaR-ZN
    Попробуйте класс PHPDiff, он выдает массив различных строк, т.е можете потом из одного файла заменить строку во втором, тем самым привести их к одному виду или эту
    Ответ написан
    Комментировать
  • PHPStorm: как настроить одновременное переименовывание открывающего и закрывающего тэга?

    KorsaR-ZN
    @KorsaR-ZN
    Ну только сочетанием, что Вы написали, либо правой кнопкой - рефакторинг - переименовать.
    Ну еще, как вариант, перевесить hotkey c shift + f6 на f2, я себе так сделал удобно).

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

    KorsaR-ZN
    @KorsaR-ZN
    В какой кодировки сами файлы? я предполагаю, что это не UTF-8, ну или UTF-8 BOM.
    Перекодируйте файлы в UTF-8 без BOM, например через Notepad++
    Ответ написан
  • Правильная проверка на пустоту переменной?

    KorsaR-ZN
    @KorsaR-ZN
    Начну с различия между isset и empty.

    isset - проверяет на существование переменной или индекса в массиве, т.е она будет ВСЕГДА true, если значение отлично от NULL, именно от константы null, т.е '', 0, "\0" и т.д, будет считаться существующей переменой, false будет только при присвоение ей null или unset($var), во всех остальных true

    empty - проверят именно на пустоту переменной, т.е возвращает true если переменная является пустой и false в противоположном случаи.

    В PHP пустотой считаются следующие значения:
    • ""
    • 0
    • 0.0
    • "0"
    • null
    • false
    • array() (пустой массив)
    • $var; (переменная объявлена, но не имеет значения)


    Что касается проверки на пустоту и как ее правильно делать, то это исходит от Вашей задачи, и что должно для Вас является пустотой, но в большинстве случаем подойдет такая проверка:
    if(isset($var) && $var !== '')  {
    // $var не null и не  ''.
    }

    Еще больше поможет разобраться в сравнение типов, это таблица сравнение типов PHP
    Ответ написан
  • Есть ли книга по PHP где создается гостевая книга?

    KorsaR-ZN
    @KorsaR-ZN
    Вы шутите? хотите целую книгу по тому, как создавать гостевую книгу?
    Там даже статьи много будет для этого.
    Гостевая книга, это же просто страница с формой для ввода текста и списком ранее веденных пожеланий.
    Ну может еще какой-нибудь раздел модерации.

    Но чтоб по этому была целая книга, это вряд ли...

    Что касается ссылок в гугле их полно, правда староватые, но их можно взять за основу и придумать что-то свое используя современные возможности свежих версий PHP

    P.S Хотя может в Вашем понимание гостевая книга - это что-то другое, если я не прав, пожалуйста поясните, что именно вы имеете ввиду :)
    Ответ написан
  • Если $arr – массив из 10 строк с символьными ключами, то что произойдет при интерпретации? Что значит " массив из 10 строк с символьными ключами"?

    KorsaR-ZN
    @KorsaR-ZN
    Ваш пример не работает, так, как вы задумали. Т.к ksort, принимает по ссылки и возвращает не отсортированный массив, а 1.
    Ответ написан
    Комментировать
  • Как остаться на странице после отправки формы?

    KorsaR-ZN
    @KorsaR-ZN
    Вам ответ на второго сервера обязательно получать?
    если нет, то используйте у формы атрибут target="ИМЯ_ФРЕЙМА", на страницу добавьте скрытый фрейм, пустой, без src, но с name, которое потом укажете у формы.

    Если Вам важен ответ от дочернего сайта, то тут вариант только, проксирование через свой сервер,
    т.е вы AJAX отправляете на свой сервер, а уже с него через curl отправляете на второй, получаете ответ и возвращаете его обратно на свою страницу.
    Ответ написан
    Комментировать
  • Цикл while: какие условия он принимает?

    KorsaR-ZN
    @KorsaR-ZN
    Если по хорошему, то автор видео-ролика делает что-то не понятное, там цикл вообще не нужен.
    Т.к по логике почта в базе пользователей это уникальный элемент, их не может быть две.
    А у Автора получается, что может быть :( Надо вообщем смотреть весь его код, чтобы понять, для чего он так сделал, но на первый взгляд это его ошибка...

    А циклы нужны для повторения действий указанных в его теле, до тех пор пока условие цикла, указанное в скобках () является true.
    В данном видео, цикл будет выполнятся пока данные возвращаемые $req->fetch(), отличны от false

    Пример:
    $i = 0;
    while(++$i < 5) {
       echo $i;
    }
    
    // результат будет 1234

    Т.е данный цикл будет выполняться пока его условие выполняется, т.е true
    Ответ написан
    Комментировать
  • Как разделить домен и поддомен на разные сервера?

    KorsaR-ZN
    @KorsaR-ZN
    А в чем собственно проблема?
    Добавьте в DNS запись типа A, указывающую на какой IP адрес должен ссылать поддомен.
    Ответ написан
    Комментировать
  • Как лучше создать структуру БД?

    KorsaR-ZN
    @KorsaR-ZN
    Ну это самый правильный вариант.
    Разве, что только author вынести в отдельную таблицу, в тех двух заместо author, сделать связь по author_id
    Ответ написан
    Комментировать
  • Как объединить массивы?

    KorsaR-ZN
    @KorsaR-ZN
    Вы не как массив не смержити без повторной сортировки, т.к после слития, вам на выходе нужен будет опять отсортированный.

    Если не хотите сортировку (но по ресурсам выйдет так же):
    Сделать проход по массивам, и вставлять значения одно после нужных значений второго, при этом постоянно запоминать индекс значения в другой массив, чтобы пропускать не нужные итерации поиска позиции вставки. Я думаю идея понятно.

    Правильное решение это применить алгоритм "Сортировка слиянием"
    Ответ написан
  • Постраничная навигация. Как она устроена?

    KorsaR-ZN
    @KorsaR-ZN
    Для постраничной навигации обычно считают конечное число результатов, и делят его на число элементов на страницы, получается кол-во страниц.

    А то, что вы свойства товара джойните в обычном запросе, отсюда у вас же получаются дубли товара по разным свойствам. Это не правильный поход, свойства нужно о дельно получать для каждого товара. Хотя, как у Вас там устроена система, я не знаю, так что в Вашем случаи такой подход может и верный :)
    Ответ написан
    Комментировать
  • Ценится ли IT-специалист, который умеет все?

    KorsaR-ZN
    @KorsaR-ZN
    Такие any-кейщики может кому-то и нужны, но особо они не ценятся, т.к знают, там, там и там. Профессионал он и есть профессионал в какой-то определённый области, ну может ещё две-три, но не больше. Знать абсолютно все не возможно, отсюда у Вас будут обрывочные знание во всех областях, но не знания специалиста. Отсюда и будет соответствующая зарплата (не высокая)

    Хотя если постепенно развиваться во всех областях, сначало в одной, потом в другой, тогда может да, но на это нужно очень много времени...

    P.S Люди бывают разные, так что это только моё мнение :)
    Ответ написан
    8 комментариев
  • Как бы вы реализовали конструктор электрических сетей?

    KorsaR-ZN
    @KorsaR-ZN
    Для связей Вам нужно реализовать mindmap (диаграмму связей)
    Есть готовые библиотеки (goJs, jsPlubm)...

    Вообщем диаграмма связей это обычно структура данных, так называемое Дерево, как анализировать древовидные структуры и какие бывают алгоритмы для этого в google полно информации по запросу "дерево структура данных"

    так же полезным будет почитать про dran'n'drop, в Вашей задачи он тоже пригодиться, для перетаскивания элементов
    Ответ написан
    Комментировать
  • PDO, как получить оба id после объединения таблиц с помощью JOIN?

    KorsaR-ZN
    @KorsaR-ZN
    Да можно, просто сделайте алиас для второго поля, пример:
    SELECT *, tbl2.id AS id_file FROM tbl1 JOIN tbl2 ON условие
    Ответ написан
    1 комментарий