PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (8): [1] 2 3 4 5 6 7 8 »

> Найдено сообщений: 114
TuX560 Отправлено: 01 Апреля, 2016 - 15:46:26 • Тема: Запуск в новом потоке другого скрипта • Форум: Вопросы новичков

Ответов: 5
Просмотров: 516
А каким нибудь чудом используя ignore_user_abort() отправить пользователю данные и разорвать соединение со стороны сервера с успешным статусом + продолжить выполнение?
TuX560 Отправлено: 01 Апреля, 2016 - 10:51:41 • Тема: Запуск в новом потоке другого скрипта • Форум: Вопросы новичков

Ответов: 5
Просмотров: 516
Мелкий пишет:
Обычный exec с запуском фоновой команды &

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

Мелкий пишет:
Более удобное решение: ajax запрос пишет в очередь, воркер разгребает очередь и что-то делает. См. "сервер очередей", довольно распространённый паттерн для таких задач.

Спасибо, сейчас почитаю, но ситуация такая, что данное поведение требуется лишь при инициализации и всего для одного скрипта, надеялся что получится более просто реализовать.
TuX560 Отправлено: 01 Апреля, 2016 - 09:15:44 • Тема: Запуск в новом потоке другого скрипта • Форум: Вопросы новичков

Ответов: 5
Просмотров: 516
И все равно сколько не гуглил ничего рабочего не нашел. еще раз повторюсь нужно при работе скрипта запустить второй и не дожидаясь его окончания продолжить и завершить выполнение первого, при этом второй должен отработать до конца
TuX560 Отправлено: 31 Марта, 2016 - 16:34:08 • Тема: Запуск в новом потоке другого скрипта • Форум: Вопросы новичков

Ответов: 5
Просмотров: 516
Добрый день, интересует как в отдельном потоке запустить другой php скрипт. пока нагуглить ничего рабочего не удалось.
Собственно задача состоит в том, что при отправке пользователем AJAX запроса необходимо обработать его и вернуть ответ, дополнительно запустив другой скрипт. Второй скрипт выполняется очень долго и не возвращает пользователю ни каких данных.
TuX560 Отправлено: 22 Марта, 2016 - 13:17:20 • Тема: Помогите понять где проблема • Форум: Вопросы новичков

Ответов: 6
Просмотров: 274
goleafserg пишет:
т.е в кодировке utf-8 я не могу обращаться к символу строки через такую вот конструкцию $str[1] или $str{1}?
как правильно тогда?

Вам же ответили: использовать mb_* для работы с многобайтными кодировками, к примеру как-то так: mb_substr($str,mb_strlen($str)-1,1,"UTF-8");
TuX560 Отправлено: 14 Марта, 2016 - 08:12:17 • Тема: Составить SQL запрос для получения поля из строки по условию и другого поля из следующей строки • Форум: Напишите за меня, пожалуйста

Ответов: 3
Просмотров: 113
Спасибо, идея сделать
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT id, text FROM TABLE WHERE id >= (SELECT id FROM TABLE WHERE text='text') ORDER BY id ASC LIMIT 2

была самой первой, но смутило то что в ответе мы получаем в 2 раза больше чем необходимо. Мне уже так же кажется, что быстрее, проще и понятнее будет оставить 2 запроса.
TuX560 Отправлено: 11 Марта, 2016 - 13:25:49 • Тема: Составить SQL запрос для получения поля из строки по условию и другого поля из следующей строки • Форум: Напишите за меня, пожалуйста

Ответов: 3
Просмотров: 113
Доброго всем дня. Проблема в следующем, есть таблица поля которой id - первичный ключ с автоинкриментом и уникальное текстовое поле. нужно получить id по текстовому полю и выдать текстовое поле из следующей записи. в данный момент выглядит примерно так:
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT id FROM TABLE WHERE text='text';
  2. SELECT text FROM TABLE WHERE id > <ранее полученный id> ORDER BY id ASC LIMIT 1

id текущей записи тоже необходимо получить для дальнейших действий
Возможно ли запихать все это в один запрос и будет ли это быстрее работать чем 2 отдельных запроса? Для работы с БД используется mysqli
(Добавление)
upd. И как это лучше реализовать/оптимизировать?
(Добавление)
upd2 и да, реализовать нечто подобное мне все же удалось:
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT id, (SELECT DISTINCT id FROM TABLE WHERE text = 'text') AS old_id, text FROM TABLE HAVING old_id < id ORDER BY id ASC LIMIT 1

Но:
1. если верить профилировщику mysql это работает медленне чем 2 отдельных запроса
2. присутствует лишний id следующей записи от которого мне так и не удалось избавиться.
В mysql не силен, поэтому просьба сильно не пинать.
TuX560 Отправлено: 01 Марта, 2016 - 10:36:42 • Тема: Не работает условный оператор в объявлении полей класса PHP 5.4 • Форум: Вопросы новичков

Ответов: 10
Просмотров: 405
LIME пишет:
TuX560 пишет:
а что если класс статический
значит он не нужен
распространенная ошибка новичков в ООП клепать "статические" классы

Согласен в большинстве случаев статические классы не нужны(есть опыт c++/c#) Вопрос был чисто теоритический.
LIME пишет:
TuX560 пишет:
доступ к полю есть только через геттер
сие невозможно
либо всё статика либо используются акцессоры
невозможно сделать закрытое свойство в статическом классе так как для закрытого свойства нужен инстанс

Об этом не подумал.
LIME пишет:
короче что надо сделать? подозреваю что ничего и вопрос чисто по теории
тогда совет просто начать писать и набить шишки

Абсолютно верно, мне пока в голову такое писать не приходило, а друг столкнулся с подобной ситуацией, захотелось разобраться.

Спасибо за ответы
TuX560 Отправлено: 01 Марта, 2016 - 08:17:14 • Тема: Не работает условный оператор в объявлении полей класса PHP 5.4 • Форум: Вопросы новичков

Ответов: 10
Просмотров: 405
DelphinPRO пишет:
Для инициализации объекта существует специальный метод-конструктор __construct()
Чем он вам не понравился?

Так и посоветовал, а что если класс статический и доступ к полю есть только через геттер?(вопрос чисто абстрактный)
TuX560 Отправлено: 29 Февраля, 2016 - 14:42:43 • Тема: Не работает условный оператор в объявлении полей класса PHP 5.4 • Форум: Вопросы новичков

Ответов: 10
Просмотров: 405
Мелкий пишет:
TuX560 пишет:
PS: Вы кажется не объявили константу FOO

Та нафиг она нужна. Главное, что в 5.6 это уже синтаксически корректный код.

TuX560 пишет:
пример тот что выше у него тоже не работает

Это который
PHP:
скопировать код в буфер обмена
  1. class A
  2. {
  3.    public $var1 = CONST ? '1' : '2';
  4. }

? CONST - зарезервированное слово. На него парсер и обижается. Потому у себя и вписал какую-нибудь другую константу.

Прошу прощения, Вы правы, вместо CONST тоже использовалось другое имя, но проблема была в синтаксисе допущенная по невнимательности.

Тогда вопрос: можно так писать если в требованиях указать php 5.6 или все-таки это говнокод?
TuX560 Отправлено: 29 Февраля, 2016 - 13:43:43 • Тема: Не работает условный оператор в объявлении полей класса PHP 5.4 • Форум: Вопросы новичков

Ответов: 10
Просмотров: 405
Мелкий пишет:
Уверены, что 5.5, а не 5.6?
Некоторые типы вычислений разрешили в 5.6

Что удалось выпытать из друга) Решить ему решили путем инициализации в конструкторе, для него работает и ладно, а самому интересно стало. В текущей его версии php(пока не известна) даже при полном выводе debug - никаких ошибок/предупреждений не выдает, и работает вариант с инициализацией с использованием условного оператора.

PS: Вы кажется не объявили константу FOO
К сожалению у самого под руками только 5.6 поэтому сам протестить не могу.

upd. проверил у себя на 5.6 - тоже не работает Не понял Теперь еще большая загадка, почему у него получается использовать данный синтаксис. возможно причина в xampp под windows? Сам тестил под федорой
(Добавление)
Новые забавные факты: пример тот что выше у него тоже не работает, а вот содержимое файла assets\AppAsset.php успешно отрабатывает. PHP 5.6.8
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. namespace app\assets;
  3.  
  4. use yii\web\AssetBundle;
  5.  
  6. class AppAsset extends AssetBundle
  7. {
  8.     public $basePath = '@webroot';
  9.     public $baseUrl = '@web';
  10.     public $css = [
  11.         YII_DEBUG ? 'css/site.css' : 'css/site.min.css',
  12.     ];
  13.    
  14.     public $js = [];
  15.    
  16.     public $depends = [
  17.         'yii\web\YiiAsset',
  18.         'yii\bootstrap\BootstrapAsset',
  19.     ];
  20. }
TuX560 Отправлено: 29 Февраля, 2016 - 12:45:21 • Тема: Не работает условный оператор в объявлении полей класса PHP 5.4 • Форум: Вопросы новичков

Ответов: 10
Просмотров: 405
Добрый день, данная проблема возникла не у меня, а у моего друга, поэтому все детали данного магического поведения мне не ясны(в том числе и логи) А суть вот в чем: при объявлении поля класса и задания значения через условный оператор, фреймворк YII на php 5.4 выдает ошибку примерного вида unexpected '?'. на php 5.5 такой проблемы не наблюдается. В чем же корень данной проблемы?

PHP:
скопировать код в буфер обмена
  1. ...
  2. class A
  3. {
  4.    public $var1 = CONST ? '1' : '2';
  5. }

(Добавление)
upd. Кажется уже нашел в документации: "Переменные, которые являются членами класса, называются "свойства". Также их называют, используя другие термины, такие как "атрибуты" или "поля", но в рамках этой документации, мы будем называть их свойствами. Они определяются с помощью ключевых слов public, protected, или private, следуя правилам правильного описания переменных. Это описание может содержать инициализацию, но инициализация должна применяться для константных значений - то есть, переменные должны быть вычислены во время компиляции и не должны зависеть от информации программы во время выполнения для их вычисления."

Теперь такой вопрос: почему в 5.5 все работает?)
TuX560 Отправлено: 19 Февраля, 2016 - 13:38:36 • Тема: Срез json • Форум: Вопросы новичков

Ответов: 6
Просмотров: 255
Можно попробовать array_filter или вручную пробежаться и удалить или сдвинуть(зависит от того какой результат на выходе Вы ожидаете получить) лишние элементы
TuX560 Отправлено: 19 Февраля, 2016 - 11:59:40 • Тема: Безопасность работы с html • Форум: Вопросы новичков

Ответов: 29
Просмотров: 1109
Viper пишет:
Зависит от случая.
вики-разметка ещё тот геморой. Такая же "удобная" как и markdown.

Согласен, дело привычки. Но вместо того что бы пытаться обезопасить html разметку, возможно проще будет использовать безопасную и более знакомую многим пользователям разметку. Я не агитирую и не пытаюсь сказать, что это универсальное решение всех проблем. Изначально я поднимал вопрос о необходимости использования html и возможные альтернативные решения для неизвестной ситуации.
TuX560 Отправлено: 19 Февраля, 2016 - 11:13:54 • Тема: Оригинальный ключ • Форум: Вопросы новичков

Ответов: 9
Просмотров: 339
Мелкий пишет:
Основное: random_bytes уже в ядре и всегда доступна.

Про openssl_random_pseudo_bytes есть пара слов и ссылка на интересный баг вот тут: https://github.com/paragonie/random_compat/blob/master/ERRATA.md

Спасибо, буду иметь ввиду
(Добавление)
Мелкий пишет:
Важно понимать, что все три представленных варианта кода - не CSPRNG и для серьёзных вещей (ключи, пароли, токены) применять не стоит.
Криптостойкий: http://php.net/manual/en/function.random-bytes.php

И тут я вспомнил, что мой вариант основан на увиденном методе генерации ключа для шифрования всего и вся в laravel 5.1 Радость

Страниц (8): [1] 2 3 4 5 6 7 8 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB