@prophp7

Страница 597 из 1387
Aleserche
07.09.2017
07:04:51
короче регуляркой вытаскивать и все

а вообще нужно задачу сформулировать чуточку точнее. Что на входе и что на выходе

Игорь
07.09.2017
07:05:53
не понятно обьяснил?:)
Если нужно именно на sql то можно начать отсюда: https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_substring-index

Ну а вообще mysql (если кейс для него) может и в regex.

Google
Алексей
07.09.2017
07:07:48
на входе - текстовое поле с html тегами, в котором хранятся изображения, нужно получить ссылку на первое изображение в данном поле

Vadiimmm:-)))
07.09.2017
07:11:28
javascript эксполит уже внедрили на ту страницу?)))

Saško
07.09.2017
07:38:17
Привет. А вот может кто дружит хорошо с математикой, я что-то решения с ходу найти не могу. Вопрос не напрямую по ПХП, скорее просто алгоритмический, но решаю задачу на нём, и даже не знаю, где бы ещё спросить. Вот есть формула: A = Ceil(Ceil(B * X, 4) * C, 4) Т.е. есть три множителя, где на каждом этапе результат округляется до 4 знаков после точки в большую сторону. Теперь внимание вопрос - у нас есть А, В и С - как нам найти Х? Понятно, что точное значение Х не найти из за погрешности с округлением. Но достаточно найти любую Х, которая бы при подставлении давала именно ту А. Я подозреваю, что это можно сделать и чисто алгебраически, но сойдет и кустарный способ, с небольшим количеством итераций.

Dmitriy
07.09.2017
07:39:09
X = A / B * C

Alexander
07.09.2017
07:39:53
A = B * X * C

Saško
07.09.2017
07:40:00
если подставить в формулу выше значение Х полученное таким способом, то А не будет совпадать на 0.002-0.0001 (в лучшем случае)

Alexander
07.09.2017
07:40:21
Понятно, что точное значение Х не найти из за погрешности с округлением.

Saško
07.09.2017
07:41:10
вот нужно найти любое такое Х, которое подставив в формулу мы получим точное значение А, которое совпадает с тем, что у нас есть

Я пробовал в лоб через деление (как предложили выше, получится заведомо чуть бо́льшая Х) и постепенном уменьшении Х, пока результат не совпадёт. Но проблема в том, что получившеяся Х может быть на 0.001, а может и на 0.000001 отличатся, так что простым декрементом очень маленькой дробью - выходит ОЧЕНЬ некрасиво :)

Dmitriy
07.09.2017
07:49:42
X =ceil(A / ceil(B * C, 4), 4)

Mikhail
07.09.2017
07:55:26
так вы еще сильнее увеличиваете x

Dmitriy
07.09.2017
07:58:47
можно заменить на floor

Виктор
07.09.2017
08:01:22
Да все равно, вы не сможете таким образом воссоздать утерянную точность

Google
Dmitriy
07.09.2017
08:02:28
ну да

Виктор
07.09.2017
08:05:39
В данном случае, скорей всего, для корректировки результата "X" подойдут алгоритмы используемые в логарифмических функциях

Saško
07.09.2017
08:10:59
ну так мне не нужно утеряная точность мне нужно найти ЛЮБУЮ Х, которая удовлетворит равенству

и вот тут вот сложности, кроме как считать итерациями — ума блин не хватает :) но я почему-то думаю что можно вывести формулу, наверняка же :) ну или хотя бы адекватный алгоритм декремента Х для максимально быстрого поиска т.к. в отдельных случаях приходится делать по 10к итераций, что много

Pavel
07.09.2017
08:14:38
https://www.nginx.com/products/nginx-unit/ Создатели nginx запили свой application server - поддерживает php5/7 из коробки.

Dmitriy
07.09.2017
08:20:24
бета еще

Saško
07.09.2017
08:24:16
Логарифм как раз об этом.
ну вот хотя бы ключевые слова для гугла есть советик? :) первый раз в жизни не могу придумать в гугл запрос «логарифм нахождение множителя» явно не то :)

Alexandr
07.09.2017
08:28:08
попробуй так $x = ($floor(($floor($a, 3) + 0.0005) / $c, 3) + 0.0005) / $b;

Saško
07.09.2017
08:31:01
ну я вот так и пробую, подбирая коэфициенты и на опыте скажу, что на определенных числах (когда b или c меньше нуля) — всё рушится :( т.е. вот эти коэфициенты типа 0.0005 - эмпирическим путем выяснил, что должны быть не константами, а зависить от множителей

Rm
07.09.2017
08:32:23
laravel про такое знаю $post = Post::find(7); а как из переменой обновиться?



$post->fill(array( 'title' => 'Laravel - замечателен!', 'author' => 'Джейсон', 'body' => 'Laravel очень удобен - используйте его, если вы ещё этого не делаете!' )); и дальше $post->save();

Alexandr
07.09.2017
08:36:04
ну я вот так и пробую, подбирая коэфициенты и на опыте скажу, что на определенных числах (когда b или c меньше нуля) — всё рушится :( т.е. вот эти коэфициенты типа 0.0005 - эмпирическим путем выяснил, что должны быть не константами, а зависить от множителей
это не эмпирические коэффициенты, это слагамые тыкающие значение в середину отрезка (0.00009, 0.009) :) ... по поводу отрицательных коэффициентов - это особенность ceil и floor в пхп ... она тянет вдоль шкалы чисел вправо и влево соответственно ... модифицируй так, чтобы тянуло по модулю вверх/вниз и будет щщастье

Борис
07.09.2017
08:39:45
если подставить в формулу выше значение Х полученное таким способом, то А не будет совпадать на 0.002-0.0001 (в лучшем случае)
Так результат никогда не будет совпадать, вы же работаете с числами с плавающей запятой. Напримери 0.1f + 0.2f = 0.30000000000000000023f что-то в таком стиле. Так считает процессор, если не навернуты наверх языком нормальное матиематическое округление с точностью до меньшего кол-ва знаков, то ответ такой и останется. Так что и вам, батенька, нужно учитывать равенство с какой-то точностью.

Saško
07.09.2017
08:40:44
результат (А) учитывается с конкретной точностью - 4 знака после запятой так что найти такой Х, который бы удовлетворял результату — можно вопрос только как

т.е. если даже просто в тупую брать Х так: Х = (А / С) / B и постепенно уменьшать, то в какой-то момент Х станет таким, что будет равенство но т.к. уменьшать приходится на очень маленькие доли, то и итераций может быть огромное количество

Борис
07.09.2017
08:44:18
попробуй так $x = ($floor(($floor($a, 3) + 0.0005) / $c, 3) + 0.0005) / $b;
Вот тут должно работать, только для отрицательных чисел нужно не добавлять погрешность, а отнимать. поэтому нужно добавить знак числа к погрешности

Saško
07.09.2017
08:45:05
ну допустим, все числа всегда положительные, но это координально не упрощает :)

Борис
07.09.2017
08:45:16
Давай так, я с нуля писать не хочу, но готов тебе помочь. Выложи код на IDEONE который работает "почти так как тебе нужно" и я тебе помогу

Google
Saško
07.09.2017
08:46:15
сейчас попробую :)

Dmitriy
07.09.2017
08:51:16
посмотри в сторону производных

Борис
07.09.2017
08:53:58
т.е. если даже просто в тупую брать Х так: Х = (А / С) / B и постепенно уменьшать, то в какой-то момент Х станет таким, что будет равенство но т.к. уменьшать приходится на очень маленькие доли, то и итераций может быть огромное количество
Как это не получится? Пусть A = 12 C = 3 и B = 4 Тогда X = (((12 / 3) - погрешность) / 4) - погрешность = 0.99995 Допустим. Вообще в php нету CEIL с точностью, поэтому я умножаю на 1000 а потом делю <?php $B = 3; $C = 4; $X = 0.99995; $A = ceil(ceil($B * $X * 1000) / 1000 * $C * 1000) / 1000; echo $A; вот, ровно 12

Saško
07.09.2017
08:54:17
https://ideone.com/lOhSYO

вот пример, тут видно вылезающую погрешность

получается что-то вроде такого: oldX=1.74464021 newX=1.7446432465886 origA=473.1144 calcA=473.116 где олдХ это оригинальное значние ньюХ — вычисленное и видно, как после этого А уже не сходится

Виктор
07.09.2017
08:55:42
посмотри в сторону производных
Уже предлагал, человек все равно упорно ищет, что то другое

Saško
07.09.2017
08:57:21
Уже предлагал, человек все равно упорно ищет, что то другое
прозводные еще не предлагали вроде в любом случае, не совсем понятно, что значит «посмотри в сторону производных», это как «посмотри в собаке» хоть как примерно гуглить? есть советик по поводу ключевых слов? или просто, абстрактно, посмотреть на производные? туда можно годы смотреть, вот в чем дело

Борис
07.09.2017
08:58:31
Да забей, производные это точно не по теме. Производные это про плавные функции,а тут округление - одни разрывы. Темболее с каким пор, для нахождения корня обычного уравнения нужны производные.

Alexandr
07.09.2017
08:59:07
у меня работает на любых знаках
хотя вру, на рандоме что-то не очень

Saško
07.09.2017
08:59:23
(round_up((round_up($a, 3) - 0.0005) / $c, 3) - 0.0005) / $b;
https://ideone.com/lOhSYO вот я сделал по такой формуле, не работает я там даже сделал а, б и ц константами, чтобы результат не плавал

Виктор
07.09.2017
09:00:49
Saško
07.09.2017
09:02:31
Рука лицо...анализировать информацию нужно, а не при первом запросе в гугл кричать "не то". Вам указали направление, а вы ожидаете, точный ответ, куда кликнуть, что нажать, в какую сторону повернуться
как можно проанализировать информацию «смотри в производные» или «логарифмы»? это настолько поверхностные советы, что можно с таким же успехом посоветовать смотреть в дифференциалы я подумал обо всём этом, но не знаю, как это можно применить, вот и спрашиваю совета есть совет, что хотя бы искать? хотя бы примерно?

Dmitriy
07.09.2017
09:05:27
вполне возможно проблема в постановке задачи

либо вам ее поставили не верно

либо вы ее поняли не верно

Saško
07.09.2017
09:07:35
не, задача вот именно такая, подобрать цифру так, чтобы формула «складывалась» :) но ещё дело в том, что даже если я найду воркэраунд, чтобы решить её как-то по другому, я теперь просто из принципа хочу найти элегантное решение потому что это интересная головоломка, которая, я уверен, имеет решение

Борис
07.09.2017
09:07:45
https://ideone.com/TFS8On ну тип того

Google
Saško
07.09.2017
09:12:18
ух-ты, а вот это уже интересно, надо покумекать но фишка-то в том, что получившийся myX мне надо отдать в формулу с точностью именно 4 знаков (т.к. она расчитывается не на моей стороне и я не могу её поменять)

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

Дмитрий
07.09.2017
09:15:53
есть бекенд, и javascript код который встраивается на сайт, по типу гугл аналитикса, и дергает бекенд, вопрос в секьюрики всего этого дела, как обезопасть себя чтоб код не спиздили и не вставили в другое место, + нужно както идентифицировать пользователя, хранить его историю, и роли. Все это без участия разработчиков сайта на который javascript код встраивается. Может есть статейки под рукой по этой теме, буду благодарен.

Dave
07.09.2017
09:26:35
Кто сталкивался с системами тестирования?

Нужно что то простое

без замудреностей типа moodle

Rm
07.09.2017
09:27:12
ХЗ, почему так ? Post::create([ //данные ])->firstOrFail(); если запись создается, возвращается же та что создалась? ме просто возвражает первую запись с БД

Салават
07.09.2017
09:31:19
Нужно что то простое
если нужного не найдешь, вечером напомни

Dave
07.09.2017
09:31:50
Салават я уже не нашел) как синхронизироваться с твоим календарем?) напоминалку кину)

Eevee
07.09.2017
10:05:19
Если не трудно, дайте линк на каналы по js и питону :D

Alexpts
07.09.2017
10:30:26
Подскажите библиотеку для работы с изображениями

Чтобы с gd или imagick не работать, а с приятным api работать, и временем была проверена

Alexander
07.09.2017
10:31:17
по гитхабу поищи

Sergey
07.09.2017
10:31:55
imagick неприятный апи?

Alexander
07.09.2017
10:32:46
да в без в githab в строку поиска php image и выбирай

Dmitry
07.09.2017
10:33:08
$image->createNicePicture($levelOfBeauty = 10):

Alexpts
07.09.2017
10:33:51
imagick неприятный апи?
Дело не в приятности, а нужен более высокий уровень для быстрой интеграции

Google
Saško
07.09.2017
10:36:37
Не, ну тут уже скучно. Ну добавь обычное округление. Математическое.
основная формула, куда ты добавил точность, она рассчитывается не у меня, а на стороне т.е. там всегда точность 4 знака т.е. если я скормлю им полученный X — результат не сойдётся, а поменять формулу я не могу т.е. мне нужно чтобы верно считалось именно с точностью 4 в конце концов

Борис
07.09.2017
10:46:02
Ладно, признаю, интересная задача.

Держи, не благодари https://ideone.com/b47OMX#stdin

Mihail
07.09.2017
10:51:52
http://image.intervention.io/

Saško
07.09.2017
11:24:17
Держи, не благодари https://ideone.com/b47OMX#stdin
вах! я тоже думал про округления вниз, но не довёл! ты волшебник, таки спасибо большое, не могу не поблагодарить :)

Держи, не благодари https://ideone.com/b47OMX#stdin
тока смотри, round_down($a, 4) == $a (т.к. А уже приведено к точности 4х знаков), так что его даже можно убрать с тем же результатом :)

Rm
07.09.2017
13:07:01
есть такое $postsCount = Auth::user()->posts()->getQuery()->where('posts.option', 2)->count() также есть поле message_vilidate - как его добавить в условие, но чтоб это поле было уникально? тоесть чтоб не считало две записи с одним и тем же текстом

Виктор
07.09.2017
13:16:30
Типо COUNT(DISTINCT message_validate) )?

Rm
07.09.2017
13:19:14
$postsCount = Auth::user()->posts()->getQuery()->where('posts.option', 1)->where('message_validate', ЧТОБ ИНИКАЛЬНО?)->count()

Типо COUNT(DISTINCT message_validate) )?
а как в моем запросе использовать?

Alexander
07.09.2017
13:23:34
судя по всему должно быть что-то вроде ->distinct('fieldName')

Herman
07.09.2017
13:25:58
у меня есть около 6 больших методов для работы с ajax'ом внутри core класса. я думаю вынести их отдельно, чтобы они не мешались. Как будет лучше: поместить их в отдельный класс или просто в функции? Лично мне нравится вариант с отдельным классом. Но в плане производительности как лучше будет я хз, ну и в целом

они обобщенные и не взаимодействуют друг с другом

просто разные ajax запросы на разные методы идут

Rm
07.09.2017
13:28:29
судя по всему должно быть что-то вроде ->distinct('fieldName')
ошибок не вызывает но и не выводит как нужно даннные $postsCount = Auth::user()->posts()->getQuery()->where('posts.option', 1)->distinct('message_validate')->count()

Alexander
07.09.2017
13:32:50
как на голом SQL реализовать знаю, и как на Yii1.1 тоже

а тут что? лара?

Rm
07.09.2017
13:33:31

Страница 597 из 1387