Ответы пользователя по тегу PHP
  • Остановка PHP скрипта запущенного через URL?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Вот мне его теперь нужно остановить как-то тоже через URL.
    Вариантов которые мне сходу приходят в голову, примерно два:
    1. Убить процесс, который выполняет этот скрипт (зависит от того, как это скрипт был запущен)
    2. Через другой скрипт, записывать некий код: в базу данных, файл, хранилище или куда-нибудь ещё - который будет готовить, что первый скрипт должен прервать своё выполнение, в это время, первый скрипт будет периодически проверять наличие этого изменения (говорящего о том, что ему нужно прерваться) и при обнаружении такового - будет прерываться сам

    P.S. PHP-скрипты не запускаются "через URL" и обычно никоим образом не связаны с браузером. В классическом случае - их запускает веб-сервер или FCGI-сервер. Иными словами, в PHP (как и в любом другом подобном скрипте) изначального такого понятия как "закрылся браузер" - не существует.
    Ответ написан
    Комментировать
  • PHP Simple HTML DOM Parser. Как исключить из поиска элемент с классом?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Не припоминаю такой конструкции в CSS-селекторах, как !=, но помню что есть вот такая конструкция. Не знаю поддерживает ли PHP Simple HTML DOM Parser (этот момент Вам лучше уточнить в документации к нему), но чисто логически - Вам нужен такой селектор.
    Ответ написан
  • Как передать в компонент Vue JS данные из PHP?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Как это делается на Vue JS? Заранее спасибо
    Не могу обозначить своё мнение, как хоть сколь нибудь экспертное, но в целом, в JS'е (любом, клиентском, связка с серверной частью) обычно это делается одним из двух вариантов:
    1. Отправляете запрос на сервер (AJAX например) - получаете данные
    2. Рендерите данные прямо в странице, в <script>'e, например, что-то вроде: var a = 100; //Генерируется в PHP

    Я обычно использую и тот и другой, от случая к случаю. Второй вариант, не так красив как первый, за то на 99.999% исключены "задержки", прогрузки дополнительные, -1 запрос к серверу и т.д.

    P.S. Есть ещё разные "крайние" варианты, вроде записи/чтения кук, работа через веб-сокеты и масса других, я привёл самые простые и наиболее распространенные.
    Ответ написан
    Комментировать
  • Как сделать выборку?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Помогите пожалуйста
    Вы не пробовали обернуть значение в кавычки? Как-то так например:
    $sql_select = "SELECT * FROM `visits` WHERE login='{$_SESSION['login']}'";


    P.S. А вообще, если запрос не работает - довольно верное средство - взять и запустить его в в базе "напрямую". В вашем случае, это будет выглядеть примерно так: echo $sql_select; exit; - получаете запрос, запускаете его и формулируете вопрос более конкретно, на тему того, "что именно не работает" (в данном случае, запрос или его генерация) и прикладываете номер соотв. ошибки.
    Ответ написан
    4 комментария
  • Подготовится к стажировке Back-end разработчика?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    - Насколько реально за такой срок, 4-5 месяцев, подтянуть знания до уровня которые выдвигают стажеру.
    С учётом того, что Вы адекватно оцениваете возможности среднестатистического человека, и по крайней мере не собираетесь попробовать устроиться на должность ведущего разработчика в компанию, с таким послужным списком (опытом) - вполне реально, т.е. вполне реально дотянуть до уровня стажера, при должном желании.

    - Советы насчет изучения php и mysql, видео курсы, пойдут для начала(PHP и MySQL с Нуля до Гуру 2.0)?
    Как человек, который учит людей "лично" ("в живую") - затрудняюсь сказать, какие курсы лучше... По моему сугубо личному мнению, лучше - работать напрямую с преподавателем. Но, если говорить конкретно про книги/курсы/etc, я думаю, лучше будут те - которые Вы хорошо воспринимаете. У всех разная манера писать и разное понимание прекрасного представление о том, как должен выглядеть качественный продукт (курс, книга, и т.д., не важно). Есть некоторые книги, которые возведены в разряд "библии", но далеко не все способны воспринимать стиль изложениях их авторов.

    - Насчет JS я думаю codecademy?
    Я в своё время вот это читал. Мне в целом понравилось, хотя я не JS'ник и становится им пока не планировал. Но, опять таки, если вернуться к предыдущему пункту... :)
    Ответ написан
    Комментировать
  • Как привести формат тел-на +7 (xxx) xxx-xxxx к 7xxxxxxxxxx в php?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    А в базе все тел-ны хранятся в +7 (xxx) xxx-xxxx как привести к требуемому виду? Help me!
    Можно в т.ч. и прямо в базе поменять, с помощью запроса (смотря какая БД, но думаю, что многие поддерживают регулярные выражения). В том числе можно попробовать выбирать из базы поле и изменять его прямо в запросе.

    В PHP соотв. preg_replace + регулярка типа такой: [^\d]
    Ответ написан
    Комментировать
  • Как реализовать концепцию PHP, Пример id:login:pass?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Как вариант, готовые данные можно сохранять в файл. Ещё есть json_ encode/decode и т.д. Или Вам принципиально разделитель через ":" нужен?
    Ответ написан
    7 комментариев
  • Как передать значение в showpage()?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    У меня открываются страницы с onclick="showpage(page.php)";
    Можно ли при этом передать какие-то данные?

    А что делать в моей ситуации чтоб страница не перезагружалась?
    Передавать данные через GET?

    Что-то вроде,
    onclick="showpage(page.php?param1=101&param2=202)";
    Ответ написан
  • Как вывести массив из БД?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Допустим в БД хранится массив в виде ключа => значения
    Сохраните его в базу как сериализованные данные или JSON, а потом конвертируйте обратно и проблем не будет.
    Ответ написан
    4 комментария
  • Можно ли создать базу данных с пользователем средствами PHP?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Можно, и тут вопрос даже не в PHP, практически на любом языке можно (на любом, который умеет работать с MySQL).

    Синтаксис команды CREATE DATABASE.
    Ответ написан
  • Как правильно удалять сессию по нажатию?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Ответ написан
    Комментировать
  • Как узнать сколько Php 7 скрипт жрет памяти?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Стандартные способы типа такого не работают уже? :)
    Ответ написан
    Комментировать
  • Что выбрать Python(Django) или PHP(Laravel/Yii)?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Что выбрать Python(Django) или PHP(Laravel/Yii)?

    Когда люди спрашивали "какой линукс лучше?", один умный человек сказал - лучше тот линукс, который знает Ваш знакомый сисадмин.

    Тут ситуация - совершенно аналогичная, учить (для начала) лучше то, что готов Вам преподавать Ваш ментор (на счёт наставника в институте - я лично сомневаюсь, но знать как оно там у Вас лично - не могу).

    Второй момент - смотря для чего учить? Что Вы хотите делать в итоге? Блоги? Для этого однозначно Django/Python лучше подойдут. Хотите работать? В какой стране? Например, в США будет по определению популярен C# во всех его формах и проявлениях, т.к. вендор .NET-платформы - сам находится в той же стране, со всеми вытекающими... Как только определяетесь со страной, с/в которой хотите работать, идёте на местный фриланс и смотрите кол-во работы. Понятное дело, что и исполнителей будет больше, и т.д., и что в среднем +/- на одну каждую единицу технологий будет приблизительно равное кол-во исполнителей, но популярность технологии N привлекает не только исполнителей, а ещё спонсоров и тех кто в итоге продвигает проект пополняя сообщество конечных разработчиков.

    Единственное, с чего бы я начинать не советовал - это с Yii, так как вектор его развития непонятен, он уже больше 3-х лет висит в версии 2.0 и когда будет 2.1 или 3.0 (и будет ли вообще) - не ясно пока. Лично я от него в своё время ушел и рад тому вполне. Но, это личный опыт и сейчас найдётся миллион человек, которые будут с полной уверенность доказывать, что я не прав.

    Я лично рекомендовал бы изучать сразу либо Laravel, либо Symfony (а лучше и то и другое, и в целом эти фреймворки имеют много общего по части внутренностей), если соберетесь в "клуб PHP-шников".

    Как уже озвучил предыдущий оратор - у PHP есть одно преимущество и недостаток в одном флаконе. Он с самых первых версий разрабатывался для создания веб-проектов (аки "сайтов"), в то время - для сайтов которые были актуальны тогда, в наше время - для сайтов (серверной части веб-проектов) которые актуальны сейчас. И это его направление очень ярко проявляется на практике... на PHP, за историю его существования вышло просто неимоверное кол-во веб-фреймворков, "плохие" умирали, те что "получше" живут до сих пор и т.д. Наверное, кол-во PHP-фреймворков (веб-направления) можно сравнить с кол-вом программ в которые Python встроен как скриптовый язык...

    Python в этом плане изначально разрабатывался как язык общего назначения и делают на нем далеко не только веб/сайты, он часто используется буквально "везде", для примера - на нем написана часть 3D-редактора "Blender3d", он не редко выступает скриптовым языком в больших и сложных программах, на нем не редко пишут прототипы больших программ и так далее. Соответственно, универсальность языка - та же "палка о двух концах", что и с PHP, только "в другую сторону".
    Ответ написан
    1 комментарий
  • Как пересобрать массив?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Так: $array = array_values($array); ?
    Ответ написан
    Комментировать
  • Можно ли создавать черви на php 7?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Можно ли создавать вирусы,черви и всякое вредоносное ПО на php 7 ?
    Вредоносное ПО можно создавать на чем угодно, даже на "VBA" и/или ассемблере, не только на PHP, не зависимо от его версии.
    Ответ написан
    2 комментария
  • Не вызывается из консоли composer, пишет что не является внутренней или внешней командой.. Что делать?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Подскажите в чем может быть проблэм ??
    "проблэм" может быть в том, что у Вас отсутствует файл "composer.phar" который по сути и является исполняемым файлом composer'a. Если у Вас
    В переменные среды все прописанно
    значит, PHP должен корректно вызываться по команде "php" или "php -v". Если это так - дело за малым, Вам нужно просто найти, где лежит файл "composer.phar" и вызвать его через PHP, примерно так: php composer.phar и далее пишите нужные вам команды, например: php composer.phar create-project ...
    Ответ написан
  • Как при авторизации через curl пройти проверку что сайт открываться именно с браузера?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Вот уже неделю страдаю над авторизацией на сайте
    Вы завязывайте с этим, так и нервный срыв получить можно :D

    Что этот парсер должен делать? что найти? и как потом использовать то что он нашел? и когда он должен запускаться?
    Что именно происходит в JS-коде - Вы можете посмотреть в своём собственном браузере, нажав F12 и открыв отладчик JS. Детально проанализировав полученную информацию, Вы сможете понять, что там происходит...

    Другой (или дополнительный вариант) - Вам нужно будет детально изучить HTTP-заголовки которые отправляет Ваш браузер и сравнить их с заголовками, которые отправляет Ваш парсер...

    Ещё как вариант, рекомендую Вам ознакомиться с PhantomJS, среди прочих применений - он так же применяется вместе с PHP (который вы указали в тегах) для тестирования проектов на уровне "эмуляция браузера/пользователя".
    Ответ написан
  • Почему include, require возвращает 1?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Почему include, require возвращает 1?
    Думаю, по тому, что файл удалось подключить. В ином случае, оно бы вернуло вам "0" (т.е. false). Если Вам нужно содержимое файла, а не подключение куска PHP-кода, для этого есть функция file_get_contents() например.
    Ответ написан
    Комментировать
  • Какие есть аналоги doctrine2?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Обычно ORM'ы идут вместе с фреймворком, но Вы разумеется можете заменить его (в фреймворке или где-то ещё) или использовать без фреймворка и т.д.

    Тут их целое ведро. Рекомендую обратить внимание не те ORM'ы которые как раз таки используются в фреймворках (не зря ж их туда засунули?), Kohana/ORM, Laravel/ORM, FuelPHP/ORM и т.д.

    Ещё есть "propel" и ещё Вы можете сделать сортировку по рейтингу ("sort by favorites") и посмотреть наиболее популярные решения.
    Ответ написан
  • Как ускорить работу Apache: отдачу статических файлов и выполнение PHP?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Изучил весь httpd.conf, перекопал кучу гайдов по highload (они старые и с сомнительными советами типа "отключить лишние модули"
    Один из первых модулей, который стоит отключить у Apache'а, для скорости - это поддержку файлов .htaccess, сама эта поддержка производительности не добавляет, а наличие этих файлов - уж и подавно.

    1) Это у всех VPS так называемый "мощный" процессор медленнее, чем на каком-то жалком хостинге, пусть и с VIP-тарифом?
    Нет, возможно это у Вас, персонально, какой-то дрянной VPS-хостер, или того хуже, тариф аки "OpenVZ, мы не перепродаём проданные ресурсы... ну разве что раз 10, но больше не перепродаём"

    2) Поможет ли в такой ситуации FastCGI?
    FastCGI - это режим работы PHP, напрямую, на производительность в значительной степени он не влияет, более того, сама логика работы FCGI (если сравнивать Apache-FCGI и Apache-mod_php) будет медленнее, по тому как для взаимодействия FastCGI будет использоваться сокет ("обычный" или unix-сокет), что подразумевает сетевое взаимодействие, вместо непосредственной работы интерпретатора PHP "внутри" сервера. Думаю, Вам поможет несколько другое (постараюсь описать ниже).

    3) Почему не популярны фишки типа eAccelerator (кеширование AST и т.п.)?
    Понятия не имею, почему они не популярны и откуда у Вас такая статистика... Но, возможно, дело в том, что eAccelerator морально и физически устарел, и если верить например, вот такой банальной статье (нет, я не работаю с такой "шедевральной" CMS как "Битрикс", просто это первое упоминание про eAccelerator, которое пришло мне в голову) - с версиями PHP выше 5.3 не работает.

    Я знаю, что многие из них заброшены, но это не причина, а следствие.
    Не могу прокомментировать это, так как Вы не указали следствие - чего именно. Другими словами, я не совсем понимаю, что Вы хотели этим сказать.

    4) Что еще может помочь?
    Ну так, сходу, по памяти (варианты могут быть не связаны между собой):
    1. Отказ от поддержки .htaccess в Apache или хотя бы сокращение их количества
    2. Установка Nginx в качестве фронтального сервера, для отдачи статики
    3. Полный отказ от Apache вообще и переход на Nginx+FCGI (только не подумайте, я очень люблю Apache за его гибкость в настройке и широкие возможности, другой вопрос, что мало кому эта гибкость фактически нужна и мало кто способен его грамотно, качественно и полноценно настроить... Nginx в этом плане будет куда попроще). Почему FCGI? По тому, что другой приемлемый способ взаимодействия Nginx'а с PHP мне не известен. Настройка FCGI-пула - обязательна.
    4. OpCache - с версии 5.5 встроено "искаропки", к включению и настройке - настоятельно рекомендуется. Я не знаю, как обстоят дела с CMS и используете ли Вы CMS на сайте, но из моей практики, скорость работы PHP-фреймворков возрастает в среднем 8-20 раз.
    5. HHVM, как альтернатива
    6. Проверка:
    а) Того, что дело действительно в PHP. В частности, стоит собрать все логи сервера, например, сколько длились запросы, в БД, их количество и так далее.
    б) Проверка скорости работы дисковой подсистемы... Не буду "тыкать пальцем", но одно время я арендовал довольно большое кол-во VPS'ок у одного популярного хостера, и в какой-то момент, я заметил, что средняя скорость работы дисковой подсистемы - 1.4Кбайт/сек., при этом "отказы" (аки "невозможно записать блок") были примерно в 50% случаев... это продлилось не очень долго, но и через несколько месяцев, у этого же хостера, тарифы с "обычным HDD", почему-то обладали более быстрой дисковой подсистемой, нежели тарифы с "быстрыми SSD"... можно сделать выводы...
    в) Проверить реальную скорость работы процессора, не редко она отличается от завяленной достаточно сильно.

    P.S. Если Вы сформулируете вопрос(ы) более точно - я смогу дать более точные рекомендации, если конечно они Вам нужны :)

    P.P.S. Есть вариант решения проблемы вообще "в лоб", самый наверное сложный и пожалуй самый производительный в ряде случаев. Это Varnish + тонкая настройка оного, позволяет выдавать большую часть страниц из кэша (оперативной памяти) за наносекунды, иногда позволяет обслуживать очень много тысяч запросов в минуту, при этом, это не просто кэширование кода или что-то подобное... это кэширование целиком страниц и/или ответов сервера. Среди прочего - позволяет "не трогать бэкенд вообще", т.е. при запросе страницы, может не быть ни обращений к БД, ни выполнения того же PHP (или любого другого) кода, на стороне сервера. Требует довольно тонкой настройки, не очень подходит для сайтов "на CMS", для сайтов на фреймворках - требует изначально корректного подхода к разработке и продумывания того, что и как будет/должно кэшироваться. При некорректном подходе - наиболее вероятный результат - работать будет, но не так быстро как хотелось бы, а часть сайта вообще может перестать нормально функционировать. Есть так же другие решения, но с учётом довольно общих формулировок вопроса - говорить о них довольно сложно.

    Ах, да, забыл важную деталь... Почему "хостинги" используют Apache и не откажутся от него (совсем)? В большей степени по тому, что Apache позволяет делегировать часть настроек пользователю через .htaccess. При этом, для статики не редко стоит всё тот же Nginx, который, как Вы понимаете, подобным образом делегировать часть настроек пользователю не позволяет, в виду чего для этих задач не подходит и не "буксует" на этом (в отличии от Apache'а). В т.ч. и по этому, мы на 99% отказались от "хостингов" (по причине наличие Apache'а, и невозможности от него избавиться или самостоятельно настроить, и как следствие "тормозов" которые приходят вместе с подобным подходом).
    Ответ написан
    5 комментариев