@phpclubru

Страница 682 из 956
Alexey
11.10.2018
11:12:56
​​Symfony Getting Started and Best Practices (2018) Авторы: SensioLabs #php #book #english Язык: английский. Целевая аудитория: опытные программисты на php. Symfony, по словам опытных программистов, выдающийся php фреймворк с высоким порогом входа и сложной архитектурой. Если вы уже достаточно опытный программист, хорошо разбираетесь в ООП, MVC, паттернах проектирования и многом другом, данные небольшие справочники познакомят вас с основами Symfony и лучшими практиками работы с ним. В книгах рассматриваются следующие темы: ✔️ установка и настройка фреймворка; ✔️ создание первой страницы на Symfony; ✔️ роутинг; ✔️ контроллеры; ✔️ шаблоны; ✔️ конфигурация фреймворка; ✔️ тесты и многое другое. Преимущества: ➕ актуальный материал по теме; ➕ небольшой объём; ➕ множество примеров. Недостатки: ➖ не являются исчерпывающими руководствами.

Stanly
11.10.2018
11:52:40
Есть xml документ, в нем всего 6 блоков "groupRecord", а как взять тока то количество по внутренему параметру "CustomerTrxTypeIDDesc", который равен Sales? <gws:groupRecord> <gws:CustomerTrxTypeIDDesc><![CDATA[Sales]]></gws:CustomerTrxTypeIDDesc> </gws:groupRecord> <gws:groupRecord> <gws:CustomerTrxTypeIDDesc><![CDATA[Sales]]></gws:CustomerTrxTypeIDDesc> </gws:groupRecord> <gws:groupRecord> <gws:CustomerTrxTypeIDDesc><![CDATA[Sales]]></gws:CustomerTrxTypeIDDesc> </gws:groupRecord> <gws:groupRecord> <gws:CustomerTrxTypeIDDesc><![CDATA[Sales]]></gws:CustomerTrxTypeIDDesc> </gws:groupRecord> <gws:groupRecord> <gws:CustomerTrxTypeIDDesc><![CDATA[Adj]]></gws:CustomerTrxTypeIDDesc> </gws:groupRecord> <gws:groupRecord> <gws:CustomerTrxTypeIDDesc><![CDATA[Adj]]></gws:CustomerTrxTypeIDDesc> </gws:groupRecord> Всего количество я получаю так: $xmlDoc->getElementsByTagName("groupRecord")->length; А вот как именно по внутреннему параметру получить?

Alexey
11.10.2018
11:58:58
getElementsByTagName - возвращает DOMNodeList

$els = $document->getElementsByTagName('input');

Google
Alexey
11.10.2018
11:59:13
дальше можно как в доке

for ($i = $els->length; --$i >= 0; ) { $el = $els->item($i); }

http://php.net/manual/ru/class.domnodelist.php

Stanly
11.10.2018
12:03:52
for ($i = $els->length; --$i >= 0; ) { $el = $els->item($i); }
Ну это все равно выведет общее количество "groupRecord", а как именно к этому кол-ву применить внутренний параметр, то есть из 6 мне надо тока 4?

Alexey
11.10.2018
12:04:49
только сравнивать на сколько я помню (давно дело было) тоесть

$el = $els->ites($i) вернёт DOMNode

http://php.net/manual/ru/class.domnode.php

Stanly
11.10.2018
12:06:11
только сравнивать на сколько я помню (давно дело было) тоесть
Не получается, уже тестил в таком направлений

Alexey
11.10.2018
12:06:24
public readonly DOMNamedNodeMap $attributes ;

public bool hasAttributes ( void )

http://php.net/manual/ru/class.domelement.php

здесь более расширенные методы получения аттрибутов

Stanly
11.10.2018
12:10:42
а я понял, щас потестю. Спасибо

Google
Alexey
11.10.2018
12:23:46
а я понял, щас потестю. Спасибо
<?php $xmlString = file_get_contents('xml.xml'); $dom = new DOMDocument(); $dom->loadXML($xmlString); $groupRecords = $dom->getElementsByTagName('groupRecord'); $domElementsWithContentSales = []; /** DOMElement $element */ foreach($groupRecords as $element) { if( trim($element->textContent) === 'Sales') { $domElementsWithContentSales[] = $element; } } var_dump($domElementsWithContentSales);die();

Alexey
11.10.2018
12:29:26
var_dump($element->textContent)

посмотри что выводит

кстати есть еще xPath

Stanly
11.10.2018
12:32:53
выводит все данные из блока 'groupRecord'

Alexey
11.10.2018
12:32:53
//gws:CustomerTrxTypeIDDesc[text() = Sales] - чтото вроде этого

Alexandr
11.10.2018
12:33:02
много чего есть - http://php.net/manual/en/class.xmlreader.php

Alexey
11.10.2018
12:33:15
я взял твой xml

<?xml version="1.0" encoding="utf-8"?> <root> <groupRecord> <CustomerTrxTypeIDDesc><![CDATA[Sales]]></CustomerTrxTypeIDDesc> </groupRecord> <groupRecord> <CustomerTrxTypeIDDesc><![CDATA[Sales]]></CustomerTrxTypeIDDesc> </groupRecord> <groupRecord> <CustomerTrxTypeIDDesc><![CDATA[Sales]]></CustomerTrxTypeIDDesc> </groupRecord> <groupRecord> <CustomerTrxTypeIDDesc><![CDATA[Sales]]></CustomerTrxTypeIDDesc> </groupRecord> <groupRecord> <CustomerTrxTypeIDDesc><![CDATA[Adj]]></CustomerTrxTypeIDDesc> </groupRecord> <groupRecord> <CustomerTrxTypeIDDesc><![CDATA[Adj]]></CustomerTrxTypeIDDesc> </groupRecord> </root>

только без нейм спейсов

Stanly
11.10.2018
12:34:06
у меня без этого <?xml version="1.0" encoding="utf-8"?>

у меня вот с этими <SOAP-ENV:Body>

Alexey
11.10.2018
12:34:38
по идее, в данном контексте это неважно

Dmitry
11.10.2018
12:35:12
экстеншены пишет кто?

Pavel
11.10.2018
12:57:33
Я написал hello world

Иван
11.10.2018
13:46:30
экстеншены пишет кто?
ты про браузерные расширения?

Dmitry
11.10.2018
13:47:05
нет, пхп

Alexey
11.10.2018
13:50:42
ток на хабрике статейку видел где на c++ писали расширение

Google
Сергей З.
11.10.2018
15:47:24
Alexandr
11.10.2018
17:07:22
можно на зефире попробовать если с С++ тяжко

https://habr.com/post/194838/

Dmitry
11.10.2018
17:23:06
зефир смотрел мельком, но не увидел, как там биндится с либами

Pavel
11.10.2018
18:25:51
На правах комьюнити-пиара: мы тут пару дней назад организовали группу фулстакеров - тех кто раньше делал бэкенд а теперь изучает фронтенд. Если кому интересно познавать фронтенд вместе с нами то присоединяйтесь: @fullstacks_ru

Dmitry
11.10.2018
18:30:14
верстать учитесь? ;)

блин, а есть группа написателей пхп расширений

Pavel
11.10.2018
18:32:22
верстать учитесь? ;)
Не, делать DDD на фронтенде

Dmitry
11.10.2018
18:32:54
я бы посмотрел на ддд на реакте...

Pavel
11.10.2018
18:33:31
Ну не знаю как насчет реакта, а вот с ангуляром мы у себя с этим столкнулись и вполне актуальная задача.

Dmitry
11.10.2018
18:34:12
ангуляр то да, там классика

Время
11.10.2018
19:54:23
Народ, подскажите один технический момент, если кто в курсе. У меня задача чекнуть 100к доменов на предмет определенных паттернов на их главных страницах (то есть запрашиваю курлом HTML с сайта, проверяю его на паттерны, записываю в лог, и следующий домен). Взял сервак с гигабитным каналом, оперативки 10 гигов, процессор двухядерный, в общем ресурсов хватает. Запустил свой чекер в 500 потоков на данном сервере (т.е. по 500 одновременных коннектов к сайтам). Все стабильно работало несколько дней, после чего через 3 дня начали сыпаться ошибки, что DNS резолвер отвалился, т.е. к доменам нельзя было обратиться по доменному имени, и даже на сервере банальные проверки типа wget google[.]com или curl google[.]com отвечали, что не могут отрезолвить домен. Я уточняю у хостера, в чем беда, хостер сообщает, что у них некие сетевые лимиты к портам DNS (53|993), то есть, типа в процессе работы скриптов накапливаются UDP подключения по DNS портам, которые получают resolve информацию, и типа перегружаются запросами, и перестают работать. Кто нибудь может мне ламеру объяснить, что это за ограничения такие, и как их можно выявить перед покупкой сервера? К примеру, если буду выбирать сервак без этого гемороя, чтобы быть уверенным, что никаких подобных ограничений не будет. Буду признателен, если кто подскажет, из за чего на сервере такая беда происходит, и можно ли её в рамках текущего сервера побороть, или надо покупать более мощный, или какой то по особенному сконфигурированный.

dypa
11.10.2018
19:55:33
Народ, подскажите один технический момент, если кто в курсе. У меня задача чекнуть 100к доменов на предмет определенных паттернов на их главных страницах (то есть запрашиваю курлом HTML с сайта, проверяю его на паттерны, записываю в лог, и следующий домен). Взял сервак с гигабитным каналом, оперативки 10 гигов, процессор двухядерный, в общем ресурсов хватает. Запустил свой чекер в 500 потоков на данном сервере (т.е. по 500 одновременных коннектов к сайтам). Все стабильно работало несколько дней, после чего через 3 дня начали сыпаться ошибки, что DNS резолвер отвалился, т.е. к доменам нельзя было обратиться по доменному имени, и даже на сервере банальные проверки типа wget google[.]com или curl google[.]com отвечали, что не могут отрезолвить домен. Я уточняю у хостера, в чем беда, хостер сообщает, что у них некие сетевые лимиты к портам DNS (53|993), то есть, типа в процессе работы скриптов накапливаются UDP подключения по DNS портам, которые получают resolve информацию, и типа перегружаются запросами, и перестают работать. Кто нибудь может мне ламеру объяснить, что это за ограничения такие, и как их можно выявить перед покупкой сервера? К примеру, если буду выбирать сервак без этого гемороя, чтобы быть уверенным, что никаких подобных ограничений не будет. Буду признателен, если кто подскажет, из за чего на сервере такая беда происходит, и можно ли её в рамках текущего сервера побороть, или надо покупать более мощный, или какой то по особенному сконфигурированный.
ifconfig покажи

Время
11.10.2018
19:57:08
ifconfig покажи
root@***:~# ifconfig eth0 Link encap:Ethernet HWaddr 52:*:b6 inet addr:* Bcast:* Mask:255.255.255.192 inet6 addr: fe80::*:dfb6/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:205924798 errors:0 dropped:0 overruns:0 frame:0 TX packets:190741586 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:325319257439 (325.3 GB) TX bytes:17572775748 (17.5 GB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:25316 errors:0 dropped:0 overruns:0 frame:0 TX packets:25316 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:1274120 (1.2 MB) TX bytes:1274120 (1.2 MB)

Admin
ERROR: S client not available

dypa
11.10.2018
19:57:23
и cat /etc/resolv.conf

Время
11.10.2018
19:57:57
и cat /etc/resolv.conf
cat /etc/resolv.conf # Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8) # DO NOT EDIT THIS FILE BY HAND — YOUR CHANGES WILL BE OVERWRITTEN nameserver 1.1.1.1 nameserver 8.8.8.8

dypa
11.10.2018
19:58:20
тогда хз откуда лимиты :)

Время
11.10.2018
19:59:07
мне так же непонятно, если DNS гугловские, и вроде как запросы идут напрямую к ним, как они могут отваливаться. Когда днс падает, в это время коннекты по айпи адресам спокойно проходят.

Google
Alexandr
11.10.2018
19:59:20
а сервер у кого брал если не секрет?

Время
11.10.2018
19:59:41
вроде на хабре их хвалят, и имеют там репу, по идее должны бы разбираться...

Думаю переехать от них на более надежного хостера, но походу проблемы то могут остаться прежними.

Maxim
11.10.2018
20:35:47
Alexandr
11.10.2018
20:52:54
это врядли

Pavel
11.10.2018
20:53:05
Ну или ты же полюбому ходишь в интернет через их сеть, вот они могут где-то на границе своей сети поставить анализатор и контролировать.

Alexandr
11.10.2018
20:53:27
я не топик стартер)

Dmitry
11.10.2018
20:57:16
бери десяток дешёвых зарубежных и параллель а у этих видимо что-то для защиты от ддос стоит

Alexandr
11.10.2018
21:29:05
Ога

Время
12.10.2018
00:52:53
Я правильно понял, в линукс дистрибутивах по дефолту таких ограничений нет?

Ghost
12.10.2018
08:04:30
если php тяжелый тогда я про C+ молчу)

Serg
12.10.2018
09:53:21
Denis
12.10.2018
10:26:36
народ а как сделать чтобы одна вкладка активная была,ну типа если дубликат вкладки открываешь и переходишь то на на первой типа сессия заканчивалась или скрипт выполнялся?

Dmitry
12.10.2018
15:09:15
асинхронность есть, а вот “как в js и real-time” зависит от того, что ты вкладываешь в эти понятия

Google
Ghost
12.10.2018
15:09:28
к прримеру

вывел часы и они тикают меняются секунды

Страница 682 из 956