Содержание

Как я html-парсер на php писал, и что из этого вышло. Вводная часть / Хабр

Привет.

Сегодня я хочу рассказать, как написать html парсер, а также с какими проблемами я столкнулся, разрабатывая подобный парсер на php. А проблем было много. И в первой части я расскажу о проектировании парсера, и о возникших проблемах, ведь html парсер отличается от парсера привычных всем языков программирования.

Введение

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

Здесь и далее в статье я буду называть документ, содержащий html просто «Документ».

Dom дерево, находящееся в элементе, будет называться «Подмассив».

Что должен делать парсер?

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

  • Проектировать dom-дерево на основе документа
  • Если есть ошибки в документе, то он должен их решать
  • Находить элементы в dom-дереве
  • Находить children элементы
  • Находить текст

Это самый простой список того, что должен уметь парсер. По-хорошему, он еще должен отправлять информацию об ошибках, если таковые были найдены в исходном документе.

Впрочем, это мелочи. Основного функционала вполне хватит, чтобы поломать голову пару ночей напролет.

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

Разделяй и властвуй

Для начала, нужно разделить работу парсера на два этапа:

  • Отделение обычного текста от тегов
  • Сортировка всех полученных тегов в dom дерево

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

Для описания первого этапа я нарисовал схему, которая наглядно показывает, как обрабатываются данные на первом этапе:

Я решил опустить все мелкие детали. Например, как отличить, что после открывающего «<» идет тег, а не текст? Об этом я расскажу в следующих частях. Пока что этого вполне хватит.

Также тут стоит уточнить. Логично, что в документе помимо тегов есть еще и текст. Говоря простым языком, если парсер найдет открывающий тег и если в нем будет текст, он запишет его после открывающего тега в виде отдельного тега. Такой тег будет считаться как одиночный и не будет участвовать в дальнейшей работе парсера.

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

В данном случаи уровень означает уровень рекурсии. То есть если парсер нашел открывающий тег, он вызывает самого себя, «входит на уровень ниже», и так будет продолжаться до тех пор, пока не будет найден закрывающий тег. В этом случаи рекурсия выдает результат, «Выходит на уровень выше». Но, как обстоят дела с одиночными тегами? Такие теги считаются рекурсией ни как открывающие, ни как закрывающие. Они просто переходят в dom «Как есть».

В итоге у нас получится что-то вроде этого:

	[0] => Array
	(
	[is_closing] =>
	[is_singleton] =>
	[pointer] => 215
	[tag] => div
	[0] => Array //открывается подмассив
		(
		[0] => Array
		(
			[is_closing] =>
			[is_singleton] =>
			[pointer] => 238
			[tag] => div
			[id] => Array
			(
			[0] => tjojo
			)
				[0] => Array //открывается подмассив
					(
					[0] => Array //Текст записывается в виде отдельного тега
					(
						[tag] => __TEXT
						[0] => Привет!
					)
					[1] => Array
					(
					[is_closing] => 1
					[is_singleton] =>
					[pointer] => 268
					[tag] => div
					)
				)
			)
		)
	)

Что там насчет поиска элементов?

А теперь давайте поговорим про поиск элементов. Но тут не все так однозначно, как можно подумать. Сначала стоит разобраться, по каким критериям мы ищем элементы. Тут все просто, мы ищем их по тем же критериям, как это делает Javascript: теги, классы и идентификаторы. Но тут проблема. Дело в том, что тег может быть только один, а вот классов и идентификаторов у одного элемента — множество, либо вообще не быть. Поэтому, поиск элемента по тегу будет отличаться от поиска по классу или идентификатору. Я нарисовал схему поиска по тегу, но не волнуйтесь: поиск по классу или идентификатору не особо отличаются.

Немного уточнений. Под исходным значением я имел в виду название тега, «div» например. Также, если элемент не равен исходному значению, но у него есть подмассив с подходящим элементом, в результат запишется именно подходящий элемент с его подмассивом, если таковой существует.

Стоит также сказать, что у парсера будет функция, позволяющая искать определенный элемент в документе. Это заметно ускорит производительность парсера, что позволит ему выполняться быстрее. Можно будет, например, взять только первый найденный элемент, или пятый, как вы захотите. Согласитесь, в таком случаи парсеру будет гораздо проще искать элементы.

Поиск children элементов

Хорошо, с поиском элементов разобрались, а как насчет children элементов? Тут тоже все просто: наш парсер будет брать все вложенные подмассивы найденных до этого элементов, если таковые существуют. Если таковых нет, парсер выведет пустой результат и пойдет дальше:

Поиск текста

Тут говорить особо не о чем. Парсер просто будет брать весь полученный текст из подмассива и выводить его.

Ошибки

Документ может содержать ошибки, с которыми наш скрипт должен успешно справляться, либо, если ошибка критическая, выводить ее на экран. Тут будет приведен список всех возможных ошибок, о которых, в будущем, мы будем говорить:

  • Символ «>» не был найден
    Такая ошибка будет возникать в том случаи, если парсер дошел до конца документа и не нашел закрывающего символа «>».
  • Неизвестное значение атрибута
    Данная ошибка сигнализирует о том, что была проведена попытка передачи значения атрибуту когда закрывающий тег был найден.
    <tag some =><!--И что там написано? А никто не знает, как и парсер-->

  • Ошибка html синтаксиса
    Данная ошибка возникает в двух случаях: Либо у атрибута тега в названии есть «<«, либо если знак «=» ставится дважды, хотя значение еще не было передано.
    <tag some = ='something'><!--Случайная ошибка, с кем не бывает--> <tag <some ='something'><!--И что это? Тег там, где должен быть атрибут? Непорядок-->

  • Слишком много открывающих тегов
    Данная ошибка часто встречается на сайтах, и говорит она о том, что открывающих тегов больше, чем закрывающих.
    <div>
    <div id = ='wefwe'>
    Привет!
    </div>
    <!--И куда делся </div>?-->
    

    Данная ошибка не является критической и будет решаться парсером.
  • Слишком много закрывающих тегов
    То же самое, что и прошлая ошибка, только наоборот.
    <div id = ='wefwe'>
    Привет!
    </div>
    </div><!--И что ты собрался закрывать?-->
    

    Данная ошибка также не является критической.
  • Children элемент не найден
    В этом случаи парсер просто будет выводить пустой массив.

Script, style и комментарии

В парсере теги script и style будут сразу же пропускаться, поскольку я не вижу смысл их записывать. С комментариями ситуация другая. Если вы захотите из записывать, то вы сможете включить отдельную функцию скрипта, и тогда он будет их записывать. Комментарии будут записываться точно так же как и текст, то есть как отдельный тег.

Заключение

Эту статью скорее нужно считать небольшим экскурсом в тему парсеров html. Я ее написал для тех, кто задумывается над написанием своего парсера, либо для тех, кому просто интересно. Поверьте, это действительно весело!

Данная статья является первой вводной частью. В следующих частях этого цикла уже будет участвовать непосредственно код, и будет меньше картинок с алгоритмами(что прекрасно, потому что рисовать я их не умею). Stay tuned!

Многопоточный парсинг на PHP | Трепачёв Дмитрий

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

Для ускорения процесса можно запустить несколько PHP скриптов, каждый из которых будет парсить свои страницы сайта. В этом случае процесс парсинга существенно ускорится — порой в десятки раз.

Для начала будем считать, что парсинг осуществляется на вашем локальном компьютере, а не в интернете на сервере. Часто парсер на сервер и не надо выкладывать, если он разовый, а не периодический.

На самом деле PHP — не самый подходящий язык для многопоточного парсинга, но что делать — чаще всего сайт интегрируется с парсером, а сайт работает на PHP, или же вы кроме PHP ничего и не знаете — и нет смысла учить другой язык ради написания парсера.

Разделение потоков

Пусть скрипт, который осуществляет парсинг, называется parser.php. Мы можем запускать его с разными GET параметрами, разделяя разные потоки. Например: parser.php?num=1, parser.php?num=2 и так далее.

Самое простое, что мы можем сделать — открыть этот скрипт в нескольких вкладках браузера с разными GET параметрами, тем самым запустив несколько копий этого PHP скрипта.

Хорошо, у нас сейчас запущено несколько копий одного скрипта, и каждая копия будет парсить разные страницы одного сайта — это мы указываем разными GET параметрами.

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

Самое простое, что можно сделать, это разделить потоки по главному меню сайта: каждый пункт — отдельный поток.

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

Можно сделать и посложнее. Сделаем скрипт-инициатор, который строит план парсинга. Его удобно использовать, например, в таком случае — когда на одной странице сайта находятся ссылки на все страницы, которые вам нужно спарсить. В этом случае скрипт-инициатор парсит эти ссылки, сохраняет в базу данных.

Затем в дело вступают потоки. Запускаем столько потоков, сколько нам нужно. Каждый поток перед запуском берет из таблицы одну запись из БД, помечает в специальном поле, что эта ссылка в обработке, и начинает парсить страницу по ссылке. Следующий поток берет следующую незанятую запись из БД, помечает ее занятой, парсит ее и так далее.

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

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

Особенность браузеров

Когда вы запускаете потоки, открывая вкладки в браузере — вас ждет подвох. На самом деле сработают первые 6-10 вкладок (зависит от браузера). Остальные просто повисят до конца парсинга и сработают только после того, как первые 6-10 вкладок закончат свою загрузку.

Это связано с устройством браузеров — они разрешают одновременно для одного сайта обрабатывать 6-10 запросов и ничего с этим не сделать. Пока эти запросы не будут выполнены — остальные ожидают.

Где это может вылезти — к примеру у вас на сайте 20 CSS файлов. В этом случае время загрузки существенно увеличится, так как они будут грузится по 6-10 файлов, а остальные будут ожидать. Поэтому на реальных сайтах CSS файлы сливают в один, а картинки иконок сливают в спрайты — ноги растут отсюда.

Что с этим делать — мы сейчас и разберем. Повторюсь — пока речь идет о парсинге на локальном компьютере. Вообще открытие несколько вкладок — не самая удачная и удобная идея (хотя самая быстрая в реализации). Существую и более настоящие потоки, реализованные средствами PHP — о них чуть ниже.

Автоматически запускаем потоки

Представим, что вы бы хотели запустить парсинг в 50 потоков. Не очень удобно открывать 50 вкладок в браузере.

Если попытаться, например, обратиться к 50 страницам через PHP, например, через file_get_contents или через CURL, то 50 потоков запустить не получится, так как PHP скрипт будет ждать окончания загрузки file_get_contents.

Нужно нечто асинхронное, например сокеты или AJAX.

Давайте откроем 50 потоков с помощью AJAX. Будем каждый поток запускать с таймаутом так, чтобы каждый поток запускался на секунду позже предыдущего — в этом случае мы обойдем ограничение на открытие 6-10 страниц в браузере:

var count = 50;
var url = 'http://paser.php';

for (var i = 1; i 

Как это работает: первый поток имеет задержку timeout: 1000 милисекунд — одну секунду. Если страница не ответит за это время (а она не ответит, так как парсинг длится дольше), то загрузка оборвется. Второй поток имеет задержку timeout: 1000*2 = 2000 — 2 секунды. Ну и так далее.

Самое главное — нужно настроить в PHP ignore_user_abord — в этом случае AJAX будет запускать поток, обрывать загрузку — но PHP скрипт все равно будет работать, несмотря на то, что браузер уже оборвал загрузку.

Настройки сервера

Тут будет информация о добавлении дополнительных ресурсов PHP серверу при парсинге на локальном компьютере. Добавлю попозже.

Многопоточные запросы CURL

Изучите это, это и это.

Запуск нескольких процессов на PHP

Добавлю попозже.

Настоящие потоки на PHP

Изучите это: настоящие потоки, модуль php, еще.

Что вам делать дальше:

Приступайте к решению задач по следующей ссылке: задачи к уроку.

Когда все решите — переходите к изучению новой темы.

Пишем php парсер сайтов с нуля

Опубликовано: 13.02.2015 12:48

Просмотров: 66444

Очень многие из нас хотели бы быстро наполнить сайт контентом. Я покажу вам, как несколько тысяч материалов собрать всего лишь за несколько часов.

Парсер на php — раз плюнуть!

Приветствую вас, наши дорогие читатели. Сегодня решил написать сложную статью про парсеры (сбор информации со сторонних ресурсов).

Скажу сразу, что вам потребуется знание основ программирования на php. В противном случае почитайте теории. Я не буду рассказывать азы, а сразу полезу показывать всё на практике.

Шаг 1 — PHP Simple HTML DOM Parser

Для парсинга сайтов мы будем использовать простецкую библиотечку под названием PHP Simple HTML DOM Parser, которую вы сможете скачать на сайте разработчика. Данный класс поможет вам работать с DOM-моделью страницы (дерево документа). Т.е. главная идея нашей будущей программы будет состоять из следующих пунктов:

  1. Скачиваем нужную страницу сайта
  2. Разбираем её по элементы (div, table, img и прочее)
  3. В соответствии с логикой получим определённые данные.

Давайте же начнём написание нашего php парсера сайтов.

Для начала подключим нашу библиотеку с помощью следующей строки кода:

include 'simple_html_dom.php';

Шаг 2 — Скачиваем страничку

На этом этапе мы смогли подключить файл к проекту и теперь пришла пора скачать страничку для парсинга.

В нашей библе есть две функции для получения удалённой страницы сайта. Вот эти функции

  1. str_get_htm() — получает в качестве параметров обычную строку. Это полезно, если вы стянули страничку с помощью CURL или метода file_get_contents. Пример использования: 
    $seo = str_get_html('<html>Привет, наш любимый читатель блога SEO-Love.ru!</html>')

     

  2. file_get_html() — здесь же мы передаём в качестве параметра какой-то url, с которого нам потребуется скачать контент. 
  3. $seo = file_get_html('http://www.site.ru/');

После скачивания каждой страницы вам требуется подчищать память, дабы парсеру было легче работать и не так сильно грузился ваш сервер. Эта функция вызовется с помощью данного кода:

$seo = file_get_html('http://www.site.ru/');
$seo->clear();

Шаг 3 — Ищем нужные элементы на странице

После получения DOM-модели мы можем приступить непосредственно к поиску нужного элемента-блока в полученном коде.

Большая часть функций поиска использует метод find(selector, [index]). Если не указывать индекс, то функция возвратит массив всех полученных элементов. В противном случае метод вернёт элемент с номером [index].

 Давайте же приведу вам первый пример. Спарсим мою страничку и найдём все картинки.

1

2

3

4

5

6

7

8

9

10

11

12

//подключили библиотеку
require_once 'simple_html_dom.php';
//скачали страничку
$page = file_get_html('http://xdan.ru');
//проверка нашли ли хотя бы 1 блок img и не пустая ли страница
if($page->innertext!='' and count($data->find('img'))){
  //для всех элементов найдём элементы img
  foreach($data->find('img') as $img){
    //выведем данный элемент
    echo $a->innertext;
  }
}

 

Если что-то пошло не так, то прошу отписаться в комментариях. Здесь очень кстати будет мой предыдущий материал Запутываем PHP-код без зазрения совести. Полезно для тех, кто программирует как ниндзя. Больше не отвлекаюсь, идём дальше.

Шаг 4 — Параметры поиска

Надеюсь все уже поняли, что в метод find() можно писать как теги (‘a’), так и id’шники (‘#id’), классы (‘.myclass’), комбинации из предыдущих элементов (‘div #id1 span .class’). Таким образом вы сможете найти любой элемент на странице.

Если метод поиска ничего не найдёт, то он возвратит пустой массив, который приведёт к конфликту. Для этого надо указывать проверку с помощью фукнции count(), которую я использовал выше в примере.

Также вы можете производить поиск по наличию атрибутов у искомого элемента. Пример:

//Найдём все изображения с шириной 300
$seo->find('img[width=300px]');
//Найдём изображения, у которых задана ширина
$seo->find('img[width]');
//Поиск по наличию нескольких классов
$seo->find('img[class=class1 class2]');//<img class="aclass1 class2"/>
//Ищем несколько тегов вместе
$seo->find('div, span, img, a');
//Поиск по вложенности.
//В div ищем все спаны, а в спанах ссылки
$html->find('div span a');

Замечу, что у каждого вложенного тега так же есть возможность поиска!

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

Обычный текст, без тегов и прочего, можно искать так find(‘text’). Комментарии аналогично find(‘comment’).

Шаг 5 — Поля элементов

Каждый найденный элемент имеет несколько структур:

  1. $seo->tag   Прочитает или запишет имя тега искомого элемента.
  2. $seo->outertext   Прочитает или запишет всю HTML-структуру элемента с ним включительно.
  3. $seo->innertext   Прочитает или запишет внутреннюю HTML-структуру элемента.
  4. $seo->plaintext   Прочитает или запишет обычный текст в элементе. Запись в данное поле ничего не поменяет, хоть возможность изменения как бы присутствует.

Примеры:

$seo = str_get_html("<div>first word <b>second word</b></div>");
echo $seo; // получим <div>first word <b>second word</b></div>, т.е. всю структуру
$div = $seo->find("div", 0);
echo $div->tag; // Вернет: "div"
echo $div->outertext; // Получим <div>first word <b>second word</b></div>
echo $div->innertext; // Получим first word <b>second word</b>
echo $div->plaintext; // Получим first word second word 

Эта возможность очень просто позволяет бегать по DOM-дереву и перебирать его в зависимости от ваших нужд.

Если вы захотите затереть какой-либо элемент из дерева, то просто обнулить значение outertext, т.е. $div->outertext = «»; Можно поэксперементировать с удалением элементов.

P.S. Я обнаружил проблему с кодировками при очистке и всяческими манипуляциями с полем innertext. Пришлось использовать outertext и затем с помощью функции strip_tags удалял ненужные теги.

Шаг 6 — Дочерние элементы

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

  1. $seo->children ( [int $index] )   Возвращает N-ый дочерний элемент, иначе возвращает массив, состоящий из всех дочерних элементов.
  2. $seo->parent()   Возвращает родительский элемент искомого элемента.
  3. $seo->first_child()   Возвращает первый дочерний элемент искомого элемента, или NULL, если результат пустой
  4. $seo->last_child()   Возвращает последний дочерний элемент искомого элемента, или null, если результат пустой
  5. $seo->next_sibling()   Возвращает следующий родственный элемент искомого элемента, или null, если результат пустой
  6. $seo->prev_sibling()   Возвращает предыдущий родственный элемент искомого элемента, или null, если результат пустой

 Я особо не пользовался этими возможностями, потому что они ещё ни разу не пригодились мне. Хотя один раз при разборе таблицы использовал, потому что они структурированы, что делает разбор очень простым и лёгким.

Шаг 7 — Практика

Перейдём к практике. Я решил отдать вам на растерзание одну функцию, что использовал при написании парсера текстов песен на один из своих сайтов. Пытался досконально подробно описать код. Смотрите комментарии и задавайте вопросы.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

public function parser_rock_txt() {
        $i = 0;
        $new_songs = 0;
        //номер категории, чтобы хранить в базе. У меня Рок = 1
        $category = 1;
  		//Скачиваем страничку с сайта Rock-Txt.ru
        $data = file_get_html('http://rock-txt.ru/');
        //нашли хотя бы одну ссылку на песни по буквам (проходим навигацию)
        if (count($data->find('div.a-z a'))) {
            //пробежим по всей навигации
            foreach ($data->find('div.a-z a') as $a) {
                //Выводим букву, которую парсим
                echo ('Текущая буква - ' . $a->plaintext . '<br />');
                //нашли список всех исполнителей
                $data_vocalist = file_get_html("http://rock-txt.ru" . $a->href);
                //если есть хотя бы один исполнитель
                if (count($data_vocalist->find('#dle-content div.full-news a'))) {
                    foreach ($data_vocalist->find('#dle-content div.full-news a') as $vocalist) {
                        //приводим название исполнителя к нижнему регистру
                        $vocalist->plaintext = mb_strtolower((mb_convert_encoding(($vocalist->plaintext), 'utf-8', mb_detect_encoding(($vocalist->plaintext)))), 'UTF-8');
                        //получаем id исполнителя из моей базы
                        $id_vocalist = $this->songs_model->check_vocalist(trim($this->db->escape($vocalist->plaintext)), trim($this->db->escape($this->translit($vocalist->plaintext))), $category);
                        //Нашли все песни исполнителя
                        $data_songs = file_get_html($vocalist->href);
                        //если есть хотя бы одна песня такого исполнителя - идём дальше
                        if (count($data_songs->find('#dle-content div.left-news-band a'))) {
                            foreach ($data_songs->find('#dle-content div.left-news-band a') as $songs) {
                                //Получим название песни. Удалим название исполнителя.
                                $name_song = substr(preg_replace('/\s\s+/', ' ', $songs->plaintext), strlen(trim($vocalist->plaintext)) + 1);
                                $name_song = trim($name_song);
                                //приводим название песни в нижний регистр
                                $name_song = mb_strtolower((mb_convert_encoding(($name_song), 'utf-8', mb_detect_encoding(($name_song)))), 'UTF-8');
                                //Транслитизируем название песни (моя самописная функция)
                                $name_song_translit = $this->translit($name_song);
                                //Отсекаем все пустые названия
                                if ($name_song == '' || $name_song_translit == '')
                                    continue;   
                                //Проходим по всем страницам навигации (пейджер, постраничная навигация)
                                $num_page = 0;
                                foreach ($songs->find('div.navigation a') as $num) {
                                    //если число - сравниваем, а не нашли ли мы ещё одну страницу навигации
                                    if (is_int($num->plaintext)) {
                                        if ($num->plaintext > $num_page)
                                            $num_page = $num->plaintext;
                                    }
                                }
                                echo $num_page . '<br />';
                                //загрузим текст песни
                                $text_songs = file_get_html($songs->href);
                                if (count($text_songs->find('div.full-news-full div[id] p'))) {
                                    foreach ($text_songs->find('div.full-news-full div[id] p') as $text_song) {
                                        //очищаем всякие ненужны ссылки и спаны
                                        foreach ($text_song->find('span') as $span) {
                                            $span->outertext = '';
                                        }
                                        foreach ($text_song->find('a') as $a) {
                                            $a->href = '';
                                            $a->outertext = '';
                                        }
                                        //выводим исполнителя, песню и текст
                                        echo $name_song .>]*>\s*)+/i", "<br />", $text_song->outertext, 1);
                                        //вставляю в мою базу текст песни и исполнителя (самописная функция)
                                        $result = $this->songs_model->check_song(trim($this->db->escape($name_song_translit)), trim($this->db->escape($name_song)), trim($this->db->escape($id_vocalist)), trim($this->db->escape_str(preg_replace("#(:?<br />){2,}#i", "<br />", strip_tags($text_song->outertext, '<br /><br><b><strong><p>')))));
                                        //если добавили - увеличим счётчик новых песен
                                        if ($result != -1) {
                                            $new_songs++;
                                        }
                                        $i++;
                                        //выйдем, тут всякие косяки бывают
                                        break;
                                    }
                                }
                                //теперь аналогично пробегаем по остальным страницам
                                if ($num_page > 0) {
                                    $text_songs = file_get_html($songs->href . 'page/' . $num_page);
                                    if (count($text_songs->find('div.full-news-full div[id] p'))) {
                                        foreach ($text_songs->find('div.full-news-full div[id] p') as $text_song) {
                                            foreach ($text_song->find('span') as $span) {
                                                $span->outertext = '';
                                            }
                                            foreach ($text_song->find('a') as $a) {
                                                $a->href = '';
                                                $a->outertext = '';
                                            }
                                            echo $name_song . '<br />';
                                            echo $songs->href . '<br />';
                                            echo $text_song->outertext .>]*>\s*)+/i", "<br />", $text_song->outertext, 1);
                                            $result = $this->songs_model->check_song(trim($this->db->escape($name_song_translit)), trim($this->db->escape($name_song)), trim($this->db->escape($id_vocalist)), trim($this->db->escape_str(preg_replace("#(:?<br />){2,}#i", "<br />", strip_tags($text_song->outertext, '<br /><br><b><strong><p>')))));
                                            if ($result != -1) {
                                                $new_songs++;
                                            }
                                            $i++;
                                            break;
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
        return "<br />Парсер сайта rock-txt.ru завершён. Спарсено песен всего " . $i . ", из них новых " . $new_songs . " ";
    }

 Получилась вот такая здоровая функция, которая парсит тексты песен с сайта о роке. Написал её я за час. Спарсил 10 000 текстов песен. Думаю, что руками вы бы набивали такую базу очень и очень долго 🙂

Замечу, что в коде много самописных функций, которые используются для вставки в мой базу. Эти функции у каждого могут быть индивидуальными, так что в этом я вам не помощник. Либо обращайтесь за помощью в комментарии. Всегда буду рад помочь!

Пока что на этом всё. В следующих уроках расскажу, как можно быстро и просто спарсить кучу информации на несколько десятков сайтов. Этот кейс должен обогатить каждого!

Всего доброго! Ретвиты, лайки и репосты приветствуются!

Если статья была для Вас полезной — Поделитесь ссылкой!

Советуем почитать

Закрепленные

Понравившиеся

Парсер курсов валют на PHP « Блог вебмастера Романа Чернышова

Хочу поделиться с вами некоторыми наработками в области парсинга(граббинга), в данном случае речь пойдет о парсинге курсов валют. В качестве донора мы будем рассматривать сайт ЦБРФ, т.к. он всегда поддерживает актуальные данные, всегда доступен и вообще многие сайты берут информацию о курсах именно с него.

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

Я предлагаю рассмотреть два рабочих варианта, два скрипта написанных на PHP, но работающих по разному с данными в разных форматах. Тем самым не только достичь поставленной цели, а также научится парсить HTML(разбором дерева DOM) таблицы и XML потоки.

Вариант первый, DOM, таблицы.

<?php
$date = date('d.m.Y');
$url="http://www.cbr.ru/currency_base/D_print.aspx?date_req=$date"; // URL страницы с курсами валют на сегодня
$html = file_get_contents($url); // Читаем содержимое HTML страницы
$charset = 'UTF-8'; // кодировка получаемой страницы
 
// на данном этапе, находим на в коде блок с классом header2, и все что до него удаляем, т.к. оно нам ненужно, там содержится ненужная нам информация
$pos=mb_strpos($html,'<table>', 0, $charset); // позиция
$html=mb_substr($html,$pos,mb_strlen($html, $charset), $charset); // обрезаем до указанной позиции, удаляя все лишнее
 
$dom = new domDocument; // создаем объект дерева DOM
$dom->loadHTML($html); // загружаем в него спарсенную страницу
 
$dom->preserveWhiteSpace = false;
//echo $html;
$tables = $dom->getElementsByTagName('table'); // получаем из дерева DOM первую таблицу, ею является как раз таблица содержащая курсы валют
$rows = $tables->item(0)->getElementsByTagName('tr'); // получаем из таблицы все строки
 
$i=0;
$curs = array(); // массив который будет хранить данные
foreach ($rows as $row) // беребор полученных строк
    {
	if($i==0) {$i++; continue;} // первую строку пропускаем, т.к. она содержит заголовки столбцов а не данные
        $cols = $row->getElementsByTagName('td'); // разбираем все строки по столбцам
 
 
	// записываем в полученные данные в массив, для удобного представления и работы дальше
        $curs[$i][0]=$cols->item(0)->nodeValue; // Цифр. код
        $curs[$i][1]=$cols->item(1)->nodeValue; // Букв. код 
        $curs[$i][2]=$cols->item(2)->nodeValue; // Единиц
        $curs[$i][3]=$cols->item(3)->nodeValue; // Валюта
        $curs[$i][4]=$cols->item(4)->nodeValue; // Курс
	$i++;
    }
print_r($curs);// выводим полученный массив

Вариант второй, XML.

<?php
$url = "http://www.cbr.ru/scripts/XML_daily.asp"; // URL, XML документ, всегда содержит актуальные данные
$curs = array(); // массив с данными
 
// функция полчуния даты из спарсенного XML
function get_timestamp($date)
 {
     list($d, $m, $y) = explode('.', $date);
     return mktime(0, 0, 0, $m, $d, $y);
 }
 
 
if(!$xml=simplexml_load_file($url)) die('Ошибка загрузки XML'); // загружаем полученный документ в дерево XML
$curs['date']=get_timestamp($xml->attributes()->Date); // получаем текущую дату
 
foreach($xml->Valute as $m){ // перебор всех значений
   // для примера будем получать значения курсов лишь для двух валют USD и EUR
   if($m->CharCode=="USD" || $m->CharCode=="EUR"){
    $curs[(string)$m->CharCode]=(float)str_replace(",", ".", (string)$m->Value); // запись значений в массив
   }
  }
 
print_r($curs);

Вот два простых примера как можно быстро получать всегда актуальные данные курсов валют с помощью PHP, а далее уже работать с ними в своем скрипте, сохранять в базу данных и т.д.

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

Похожие записи

Выпуски

· nikic / PHP-Parser · Релизы GitHub

· nikic / PHP-Parser · GitHub

Добавлено

  • [PHP 8.1] Добавлена ​​поддержка свойств только для чтения (через новый MODIFIER_READONLY ).
  • [PHP 8.1] Добавлена ​​поддержка констант класса final.

Фиксированный

  • Исправлена ​​совместимость с PHP 8.1. Токены и теперь канонизированы в токены T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG и T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG , используемые в PHP 8.1. Это происходит безоговорочно, независимо от того, используется ли эмуляционный лексер.

Добавлено

  • BuilderFactory :: args () теперь принимает именованные аргументы.
  • Добавлен BuilderFactory :: attribute () .
  • Метод addAttribute () , принимающий атрибут или AttributeGroup , был добавлен ко всем построителям, которые принимают атрибуты, например Builder \ Class_ .

Фиксированный

  • NameResolver теперь обрабатывает перечисления.
  • PrettyPrinter теперь печатает резервное перечисление.
  • Методы построителя для типов теперь обрабатывают свойство никогда не тип.

Добавлено

  • [PHP 8.1] Добавлена ​​поддержка перечислений. Они представлены с помощью узлов Stmt \ Enum_ и Stmt \ EnumCase .
  • [PHP 8.1] Добавлена ​​поддержка типа never. Этот тип теперь будет возвращен как идентификатор , а не Имя .
  • Добавлен конструктор ClassConst .

Изменено

  • Блоки кода, отличные от UTF-8, в строках теперь будут кодироваться в шестнадцатеричном формате.

Фиксированный

  • Фиксированный приоритет стрелочных функций.

Фиксированный

  • Информация о фиксированной позиции для переменных-переменных (# 741).
  • Информация о фиксированной позиции для признаков / интерфейсов, которым предшествует оператор if (# 738).

Фиксированный

  • Исправлено форматирование с сохранением красивой печати для "{$ x}" .
  • Тернарные выражения теперь обрабатываются как неассоциативные в красивом принтере, чтобы генерировать код, совместимый с требованием скобок, введенным в PHP 8.
  • Удален больше не нужен error_clear_last () , вызов в лексере, который может мешать работе обработчиков фатальных ошибок, если вызывается во время завершения работы.

Фиксированный

  • Исправлена ​​проверка на конфликты эмуляции токена с другими библиотеками.

Добавлено

  • Добавлена ​​поддержка восстановления после пропущенной точки с запятой после объявления константы свойства или класса.

Фиксированный

  • Исправить ложные пробелы в красивом принтере с сохранением форматирования при удалении и добавлении элементов в начале списка.
  • Исправлена ​​неправильная чувствительность к регистру при эмуляции токена ключевого слова.

Добавлено

  • [PHP 8.0] Добавлена ​​поддержка атрибутов. Они представлены с помощью нового узла AttributeGroup , содержащего узлов Attribute . Новый подузел attrGroups доступен для всех типов узлов, которые поддерживают атрибуты, например, Stmt \ Class_ , Stmt \ Trait_ , Stmt \ Interface_ , Stmt \ Function_ , Stmt \ ClassMethod , Stmt \ ClassMethod ClassConst , Stmt \ Property , Expr \ Closure , Expr \ ArrowFunction и Param .
  • [PHP 8.0] Добавлена ​​поддержка нулевых свойств внутри интерполированных строк в соответствии с изменением восходящего потока.

Фиксированный

  • Улучшена совместимость с другими библиотеками, которые используют определения прямой совместимости для токенов PHP.

Добавлено

  • Добавлена ​​поддержка удаления первого элемента списка на принтере с сохранением форматирования.

Фиксированный

  • Разрешить модификаторы элементов как часть имен пространств имен.Они были упущены, когда была добавлена ​​поддержка других ключевых слов.

Добавлено

  • [PHP 8.0] Добавлена ​​поддержка именованных аргументов, представленных с помощью нового подузла name на Arg .
  • [PHP 8.0] Добавлена ​​поддержка статического типа возвращаемого значения, представленного как тип возвращаемого значения обычного класса.
  • [PHP 8.0] Добавлена ​​поддержка выражения throw, представленного с помощью нового узла Expr \ Throw_ .По причинам обратной совместимости выражения throw в контексте оператора продолжают представляться с использованием Stmt \ Throw_ .
  • [PHP 8.0] Добавлена ​​поддержка ключевых слов как частей имен в именах.

Фиксированный

  • Выделяет круглые скобки для выборки константы класса с комплексной левой частью.
  • Выделяет круглые скобки для нового / instanceof в выражении сложного класса.
Вы не можете выполнить это действие в настоящее время.Вы вошли в систему с другой вкладкой или окном. Перезагрузите, чтобы обновить сеанс. Вы вышли из системы на другой вкладке или в другом окне. Перезагрузите, чтобы обновить сеанс.

php-парсер — npm

Эта библиотека javascript анализирует код PHP и преобразует его в AST.

Установка

Эта библиотека распространяется с npm:

 npm установить php-parser --save 

Использование

 // инициализируем фабричный класс парсера php
var fs = require ('fs');
var path = require ('путь');
var engine = require ('php-parser');

// инициализируем новый экземпляр парсера
var parser = new engine ({
  // некоторые варианты:
  parser: {
    extractDoc: правда,
    php7: правда
  },
  ast: {
    withPositions: правда
  }
});

// Получить AST из указанного источника
var eval = parser.parseEval ('echo «Hello World»;');

// Получение массива токенов (то же, что и функция php token_get_all)
var tokens = parser.tokenGetAll ('

Пример вывода AST

 {
  'вид': 'программа',
  'дети': [
    {
      'вид': 'эхо',
      'аргументы': [
        {
          'вид': 'строка',
          'isDoubleQuote': правда,
          'значение': 'Привет, мир'
        }
      ]
    }
  ]
} 

Обзор API

Основной API предоставляет класс со следующими методами:

  • parseEval (String | Buffer): анализировать код PHP в режиме eval (без открытых тегов php)
  • parseCode (String | Buffer, String filename): анализировать код PHP с помощью открытых тегов php.
  • tokenGetAll (String | Buffer): получает список всех токенов из указанного ввода.

Вы также можете передать параметры, которые изменяют поведение анализатора / лексера.

Документация

Связанные проекты

  • prettier / plugin-php: Плагин Prettier PHP
  • babel-preset-php: предустановка Babel для преобразования синтаксиса PHP в JavaScript. Он может запускать подмножество PHP в браузере или в Node.js
  • .
  • wp-pot: создать файл pot для плагинов и тем WordPress
  • кран: PHP Intellisense / завершение кода для VS Code
  • php-unparser: создает код, использующий формат стиля, рекомендованный PSR-1 и PSR-2.
  • php-writer: обновите скрипты PHP из их AST
  • ts-php-Inspections: Обеспечение проверки кода PHP, написанного на машинописном тексте
  • .
  • php-reflection: API отражения для файлов PHP
  • vscode-phpunit: расширение vscode phpunit
  • lua2php: транспилятор Lua в PHP

Вы можете добавить сюда свой собственный проект, открыв запрос на выпуск.

Лицензия

Эта библиотека выпущена согласно условиям лицензии BSD-3.

7 лучших инструментов для анализа и анализа вашего PHP-кода

Довольно странно видеть, как вся экосистема PHP изменилась с годами, сотруднику больше не нужно убеждать работодателя в том, что он хороший разработчик; ситуация изменилась, и найти хороших разработчиков PHP с каждым днем ​​становится все труднее.

PHP по-прежнему широко рекламируется как ведущий язык программирования начального уровня, который может освоить любой новый программист и начать обучение, но в последнее время Python и JavaScript становятся двумя языками, которые не только хороши для начала обучения, но также и для поиска хорошо оплачиваемой работы!

Достаточно о текущем состоянии PHP, как насчет некоторых инструментов, которые могут помочь нам анализировать и анализировать наш код, чтобы мы могли избежать проблем и проблем во время написания кода? Вот список самых популярных инструментов по мнению самих разработчиков.

1. PHP Parser

PHP Parser - это проект по синтаксическому анализу кода, построенный на основе PHP; предназначен для версий PHP от 5.2 до 5.6. Этот конкретный синтаксический анализатор отлично подходит для статического анализа и позволяет управлять кодом любых приложений, которые работают с кодом, программным способом. Парсер работает через абстрактное синтаксическое дерево (AST).

2. PHPSandbox

Полномасштабный класс песочницы PHP 5.3.2+, который использует PHP-Parser для предотвращения запуска небезопасного кода в изолированном коде.Итак, этот и тот, что выше, идут рука об руку. Некоторые из выделяющихся функций включают возможность переопределения вашего внутреннего PHP-кода, чтобы сделать его более безопасным и удобным для использования в песочнице. Вот страница, на которой документируется весь процесс.

3. Детектор сообщений PHP


PHPMD - это еще новый проект, но, тем не менее, он уже вызывает восхищение у многих разработчиков PHP. Он может взять ваш исходный код PHP и проанализировать его на наличие нескольких ошибок и проблем, некоторые из которых включают:

  • Возможные ошибки
  • Код субоптимального
  • Слишком сложные выражения
  • Неиспользуемые параметры, методы, свойства

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

4. PHPCPD

PHPCPD - это детектор копирования / вставки (CPD) для кода PHP. Если вам нужно начать работу над большим проектом, который либо был заброшен ранее, либо следует старому способу программирования, то это единственный инструмент, который поможет вам проанализировать код, чтобы избежать повторяющихся функций и вызовов по всей базе кода. Его легко настроить, и он может проанализировать проект размером с WordPress менее чем за минуту.

5. PHPCheckstyle


PHPCheckstyle - это инструмент с открытым исходным кодом, который помогает программистам PHP придерживаться определенных соглашений о кодировании.Инструменты проверяют входной исходный код PHP и сообщают о любых нарушениях указанных стандартов. Это очень полезно для тех, кто только начинает и нуждается в простом способе познакомиться с миром тестирования и анализа PHP. Отчеты краткие и понятные.

6. Убенч

Это аккуратная небольшая библиотека, которая может рассказать вам все о производительности вашего кода в простых для понимания измерениях. Ознакомьтесь с README, чтобы узнать, насколько легко его настроить.

7.Анализатор PHP


Замечательно то, что этот анализатор также доступен в виде размещенной версии на их домашней странице. Начало работы может стоить вам немного, но, возможно, стоит попробовать, чтобы сэкономить время и деньги. Этот конкретный анализатор работает с типами, потоками и другими подобными анализами, на выходе получается надежный отчет о том, как улучшить ваш код и справиться с ошибками.

Анализ и разбор вашего PHP-кода

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

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

Понимание того, как анализируется PHP

Ранее вам напоминали о том, как веб-сервер отвечает на запрос статического файла HTML. Следующие шаги описывают последовательность запроса-ответа для файла PHP:

  1. Веб-браузер запрашивает документ с расширением.php (или любое расширение, которое будет рассматриваться как файл PHP).

  2. Веб-сервер отправляет запрос на синтаксический анализатор PHP, который либо встроен в двоичный файл веб-сервера, либо существует отдельно как фильтр или исполняемый файл CGI.

  3. Анализатор PHP сканирует запрошенный файл на предмет наличия кода PHP.

  4. Когда синтаксический анализатор PHP находит код PHP, он выполняет этот код и помещает полученный результат (если есть) в то место в файле, которое раньше занимало код.

  5. Этот новый выходной файл отправляется обратно на веб-сервер.

  6. Веб-сервер отправляет выходной файл веб-браузеру.

  7. Веб-браузер отображает результат.

Поскольку код PHP анализируется сервером, этот метод выполнения кода называется на стороне сервера. Когда код выполняется браузером, например, с помощью JavaScript, он называется на стороне клиента.

Совместное проживание кода и теги PHP

Чтобы объединить код PHP с HTML, код PHP должен быть экранирован на , или выделен отдельно от HTML.Следующий метод является конфигурацией по умолчанию движка PHP:

  

Механизм PHP будет рассматривать все, что находится в открывающем теге Как код PHP. Вы также можете экранировать свой PHP-код, используя или используя открывающий тег .

Пришло время написать этот первый сценарий. Ваш первый сценарий PHP отобразит "Hello World! Я использую PHP!" в окне браузера.

Сначала откройте ваш любимый текстовый редактор и создайте простой текстовый файл с именем first.php. В этом текстовом файле введите следующий код:

     Мой первый скрипт PHP     Привет, мир! Я использую PHP! 

\ n"; ?>

Сохраните этот файл и поместите его в корневой каталог документов вашего веб-сервера.Теперь откройте его в браузере по его URL-адресу http://127.0.0.1/first.php. В окне браузера вы должны увидеть это:

 Hello World! Я использую PHP! 
Примечание

Если у вашего сервера есть реальный компьютер и доменное имя, например www.yourcompany.com, не стесняйтесь использовать его вместо 127.0.0.1 (который является локальным хостом по умолчанию).

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

     Мой первый скрипт PHP    

Привет, мир! Я использую PHP!

Поскольку PHP-код был обработан анализатором PHP, все, что остается видимым, это вывод HTML.

Теперь взгляните на PHP-код, используемый в скрипте. Он содержит три элемента: команду (эхо), строка (

Hello World ...) и признак конца инструкции (;).

Теперь ознакомьтесь с echo, потому что это, вероятно, ваша наиболее часто используемая команда. Функция echo () используется для вывода информации - в данном случае для вывода

Hello World! Я использую PHP!

в файле HTML. Терминатор инструкции является настолько важным понятием, что заслуживает отдельного раздела.

Важность терминатора инструкции

Знак конца инструкции, также известный как точка с запятой, является обязательным. Если вы не завершите свою команду точкой с запятой, механизм PHP не будет правильно анализировать ваш код PHP, и возникнут уродливые ошибки.Например, этот код:

  Hello World! Я использую PHP! 

\ n" echo "

Это еще одно сообщение.

"; ?>

выдает эту неприятную ошибку:

 Ошибка синтаксического анализа: ошибка синтаксического анализа, ожидание "," или ";" в /path/to/your/file/filename.php в строке 9 

Избегайте этой ошибки любой ценой - не забудьте заканчивать команды точкой с запятой!

Экранирование вашего кода

Прямо сейчас, не забывая заканчивать команды точкой с запятой, не забывает об экранировании таких элементов, как кавычки.Когда вы используете кавычки внутри других кавычек, внутренние пары должны быть отделены от внешней пары с помощью символа escape (\) (также известного как обратная косая черта). Например, следующий код вызовет еще одну ошибку синтаксического анализа, потому что термин "круто" заключен в двойные кавычки в строке с двойными кавычками:

  Я думаю, это действительно" круто "! 

"; ?>

Вместо этого этот код должен выглядеть так:

  Я думаю, что это действительно \" круто \ "! 

"; ?>

Теперь, когда внутренние кавычки экранированы, синтаксический анализатор PHP пропустит их, потому что он знает, что эти символы должны быть просто напечатаны и что они не имеют другого значения.Та же концепция верна для элементов в одинарных кавычках внутри других строк в одинарных кавычках - экранируйте внутренний элемент. Строки в одинарных кавычках внутри строк в двойных кавычках и наоборот не требуют экранирования символов.

Комментирование кода

Добавляете ли вы комментарии к статическим документам HTML или к сценариям PHP, комментирование кода - хорошая привычка для развития. Комментарии помогут вам и другим людям, которым, возможно, придется редактировать ваши документы позже, понять, что происходит в ваших документах.

Комментарии HTML игнорируются браузером и содержатся в тегах . Например, следующий комментарий напоминает вам, что код, следующий за ним, содержит изображение вашего логотипа:

  

Аналогичным образом, PHP-комментарии игнорируются механизмом синтаксического анализа. PHP-комментариям обычно предшествуют двойные косые черты, например:

 // это комментарий в PHP-коде 

В файлах PHP можно использовать другие типы комментариев, например:

 # Это стиль в стиле оболочки comment 

и

 / * Здесь начинается комментарий в стиле C, который занимает две строки * / 

Комментарии HTML и PHP широко используются в этой книге для объяснения блоков кода.Привыкайте читать комментарии и постарайтесь выработать привычку их использовать. Написание чистого, безошибочного кода, с большим количеством комментариев и пробелов сделает вас популярным среди ваших коллег-разработчиков, потому что им не придется излишне усердно работать, чтобы выяснить, что пытается сделать ваш код!

Теперь, когда вы знаете, как создаются и используются документы PHP, в следующем разделе вы познакомитесь с переменными и операторами PHP, которые станут неотъемлемой частью ваших скриптов.

Индекс / sistemas / matricula-facil / vendor / nikic / php-parser

03md-1 / тест_старый
Имя Последнее изменение Размер Описание

Главный каталог - 2019-05-25 17:07 26K
ЛИЦЕНЗИЯ 2019-05-25 17:07 1.5K
UPGRADE 2019-05-25 17:07 4.6K
UPGRADE-2.0.md 2019-05-25 17:07 2.8K
UPGRADE -3.0.md 2019-05-25 17:07 7.1K
UPGRADE-4.0.md 2019-05-25 17:07 3.9K
бункер / 2019-05-25 17:07-
composer.json 2019-05-25 17:07 760
2019-05-25 17:07 -
грамматика / 2021-07-01 05:54 -
lib / 904 -05-25 17:07 -
phpunit.xml.dist 2019-05-25 17:07626
тест / 2019-05-25 17:07 -
2021-06-14 23:46 -

php-parser · pkg.go.dev

PHP Parser, написанный на Go

В этом проекте используются инструменты goyacc и ragel для создания синтаксического анализатора PHP.Он анализирует исходный код в AST. Его можно использовать для написания инструментов статического анализа, рефакторинга, метрик и форматирования стиля кода.

Попробуйте онлайн: demo
Характеристики:
  • Полная поддержка синтаксиса PHP 5 и PHP 7
  • Представление абстрактного синтаксического дерева (AST)
  • Переход AST
  • Разрешение имен в пространствах имен
  • Синтаксический анализ файлов PHP с недопустимым синтаксисом
  • Сохранение и печать свободно плавающих комментариев и пробелов
Кто использует

VKCOM / noverify - NoVerify - довольно быстрый линтер для PHP

quasilyte / phpgrep - phpgrep - это инструмент для поиска кода PHP с учетом синтаксиса

Пример использования
  пакет основной

Импортировать (
"fmt"
"Операционные системы"

"github.com / z7zmey / php-parser / php7 "
"github.com/z7zmey/php-parser/visitor"
)

func main () {
src: = [] byte (` 
Дорожная карта
  • График потока управления (CFG)
  • Синтаксический анализатор PhpDocComment
  • API стабилизации
Установить
  получить github.com / z7zmey / php-парсер
  
CLI
  php-parser [флаги] <путь> ...
  
Формат дампа
флаг тип описание
-п булев путь к файлу печати
-d строка: [custom, go, json, pretty-json]
-r булев разрешить имена
-ff булев синтаксический анализ и отображение свободно плавающих строк
-проф строка запустить профилировщик: [cpu, mem, trace]
-php5 булев разбирается как PHP5

Выгрузить AST в стандартный вывод.

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

Преобразователь пространства имен - это посетитель, который разрешает полное имя узла и сохраняет в карту [node.Node] строку структуру

  • Для Class , Interface , Trait , Function , Constant узлов сохраняет имя с текущим пространством имен.
  • Для узлов Name , Relative , FullyQualified он разрешает , использует псевдонимы и сохраняет полное имя.

AWS SDK для PHP 3.x

Эта документация по API для AWS SDK для PHP содержит документацию для каждого пространства имен, класса и метода в SDK и его необходимых зависимости. Что еще более важно, он описывает каждую из услуг ' API, включая структуры параметров и результатов для каждой операции, так что вы можете увидеть, как использовать операции в вашем PHP-коде. Для просмотра Документацию по API для конкретного сервиса смотрите в таблице ниже.К просмотреть документацию по API для различных классов в SDK, использовать пространство имен и деревья классов на левой боковой панели.

AWS, Aws \ AccessAnalyzer, Aws \ AccessAnalyzer \ Exception, AWS \ Acm, Aws \ Acm \ Exception, AWS \ ACMPCA, Aws \ ACMPCA \ Exception, AWS \ AlexaForBusiness, AWS \ AlexaForBusiness \ Exception, AWS \ Amplify, AWS \ Amplify \ Exception, AWS \ AmplifyBackend, AWS \ AmplifyBackend \ Exception, AWS \ Api, Aws \ Api \ ErrorParser, AWS \ Api \ Parser, Aws \ Api \ Parser \ Exception, AWS \ Api \ Serializer, AWS \ ApiGateway, Aws \ ApiGateway \ Exception, Aws \ ApiGatewayManagementApi, Aws \ ApiGatewayManagementApi \ Exception, AWS \ ApiGatewayV2, Aws \ ApiGatewayV2 \ Exception, Aws \ AppConfig, Aws \ AppConfig \ Exception, AWS \ Appflow, Aws \ Appflow \ Exception, Aws \ AppIntegrationsService, Aws \ AppIntegrationsService \ Exception, AWS \ ApplicationAutoScaling, Aws \ ApplicationAutoScaling \ Exception, AWS \ ApplicationCostProfiler, Aws \ ApplicationCostProfiler \ Exception, Aws \ ApplicationDiscoveryService, Aws \ ApplicationDiscoveryService \ Exception, AWS \ ApplicationInsights, Aws \ ApplicationInsights \ Exception, AWS \ AppMesh, Aws \ AppMesh \ Exception, AWS \ AppRegistry, Aws \ AppRegistry \ Exception, AWS \ AppRunner, Aws \ AppRunner \ Exception, AWS \ Appstream, AWS \ Appstream \ Exception, AWS \ AppSync, Aws \ AppSync \ Exception, AWS \ Arn, Aws \ Arn \ Exception, Авс \ Афина, Aws \ Athena \ Exception, AWS \ AuditManager, Aws \ AuditManager \ Exception, AWS \ AugmentedAIRuntime, Aws \ AugmentedAIRuntime \ Exception, AWS \ AutoScaling, Aws \ AutoScaling \ Exception, AWS \ AutoScalingPlans, Aws \ AutoScalingPlans \ Exception, AWS \ Backup, Aws \ Backup \ Exception, AWS \ Batch, AWS \ Batch \ Exception, AWS \ Braket, AWS \ Braket \ Exception, AWS \ Budgets, AWS \ Budgets \ Exception, Aws \ Chime, Aws \ Chime \ Exception, AWS \ ClientSideMonitoring, Aws \ ClientSideMonitoring \ Exception, AWS \ Cloud9, Aws \ Cloud9 \ Exception, AWS \ CloudDirectory, Aws \ CloudDirectory \ Exception, AWS \ CloudFormation, Aws \ CloudFormation \ Exception, AWS \ CloudFront, Aws \ CloudFront \ Exception, AWS \ CloudHsm, Aws \ CloudHsm \ Exception, AWS \ CloudHSMV2, Aws \ CloudHSMV2 \ Exception, AWS \ CloudSearch, Aws \ CloudSearch \ Exception, Aws \ CloudSearchDomain, Aws \ CloudSearchDomain \ Exception, AWS \ CloudTrail, Aws \ CloudTrail \ Exception, AWS \ CloudWatch, Aws \ CloudWatch \ Exception, Aws \ CloudWatchEvents, Aws \ CloudWatchEvents \ Exception, AWS \ CloudWatchLogs, Aws \ CloudWatchLogs \ Exception, AWS \ CodeArtifact, Aws \ CodeArtifact \ Exception, AWS \ CodeBuild, Aws \ CodeBuild \ Exception, Aws \ CodeCommit, Aws \ CodeCommit \ Exception, AWS \ CodeDeploy, Aws \ CodeDeploy \ Exception, AWS \ CodeGuruProfiler, Aws \ CodeGuruProfiler \ Exception, Aws \ CodeGuruReviewer, Aws \ CodeGuruReviewer \ Exception, AWS \ CodePipeline, Aws \ CodePipeline \ Exception, AWS \ CodeStar, Aws \ CodeStar \ Exception, AWS \ CodeStarconnections, Aws \ CodeStarconnections \ Exception, Aws \ CodeStarNotifications, Aws \ CodeStarNotifications \ Exception, AWS \ CognitoIdentity, Aws \ CognitoIdentity \ Exception, Aws \ CognitoIdentityProvider, Aws \ CognitoIdentityProvider \ Exception, AWS \ CognitoSync, Aws \ CognitoSync \ Exception, AWS \ Comprehend, Aws \ Comprehend \ Exception, AWS \ ComprehendMedical, AWS \ ComprehendMedical \ Exception, AWS \ ComputeOptimizer, Aws \ ComputeOptimizer \ Exception, Aws \ ConfigService, Aws \ ConfigService \ Exception, AWS \ Connect, AWS \ Connect \ Exception, Aws \ ConnectContactLens, Aws \ ConnectContactLens \ Exception, AWS \ ConnectParticipant, Aws \ ConnectParticipant \ Exception, Aws \ CostandUsageReportService, Aws \ CostandUsageReportService \ Exception, AWS \ CostExplorer, Aws \ CostExplorer \ Exception, AWS \ Credentials, AWS \ Crypto, AWS \ Crypto \ Cipher, AWS \ Crypto \ Polyfill, AWS \ CustomerProfiles, Aws \ CustomerProfiles \ Exception, Aws \ DatabaseMigrationService, Aws \ DatabaseMigrationService \ Exception, AWS \ DataExchange, Aws \ DataExchange \ Exception, AWS \ DataPipeline, Aws \ DataPipeline \ Exception, AWS \ DataSync, Aws \ DataSync \ Exception, AWS \ DAX, Aws \ DAX \ Exception, AWS \ Детектив, Aws \ Detective \ Exception, AWS \ DeviceFarm, Aws \ DeviceFarm \ Exception, AWS \ DevOpsGuru, Aws \ DevOpsGuru \ Exception, AWS \ DirectConnect, AWS \ DirectConnect \ Exception, Aws \ DirectoryService, Aws \ DirectoryService \ Exception, AWS \ DLM, Aws \ DLM \ Exception, AWS \ DocDB, Aws \ DocDB \ Exception, AWS \ DynamoDb, Aws \ DynamoDb \ Exception, AWS \ DynamoDbStreams, Aws \ DynamoDbStreams \ Exception, AWS \ EBS, AWS \ EBS \ Exception, AWS \ Ec2, AWS \ Ec2 \ Exception, Aws \ EC2InstanceConnect, Aws \ EC2InstanceConnect \ Exception, AWS \ Ecr, AWS \ Ecr \ Exception, AWS \ ECRPublic, Aws \ ECRPublic \ Exception, AWS \ Ecs, Aws \ Ecs \ Exception, AWS \ Efs, Aws \ Efs \ Exception, AWS \ EKS, AWS \ EKS \ Exception, AWS \ ElastiCache, Aws \ ElastiCache \ Exception, AWS \ ElasticBeanstalk, Aws \ ElasticBeanstalk \ Exception, AWS \ ElasticInference, Aws \ ElasticInference \ Exception, AWS \ ElasticLoadBalancing, Aws \ ElasticLoadBalancing \ Exception, AWS \ ElasticLoadBalancingV2, Aws \ ElasticLoadBalancingV2 \ Exception, AWS \ ElasticsearchService, Aws \ ElasticsearchService \ Exception, AWS \ ElasticTranscoder, Aws \ ElasticTranscoder \ Exception, AWS \ Emr, Aws \ Emr \ Exception, AWS \ EMRContainers, Aws \ EMRContainers \ Exception, AWS \ Endpoint, Aws \ EndpointDiscovery, Aws \ EndpointDiscovery \ Exception, AWS \ EventBridge, Aws \ EventBridge \ Exception, AWS \ Exception, AWS \ finspace, AWS \ finspace \ Exception, Aws \ FinSpaceData, Aws \ FinSpaceData \ Exception, AWS \ Firehose, Aws \ Firehose \ Exception, AWS \ FIS, Aws \ FIS \ Exception, AWS \ FMS, AWS \ FMS \ Exception, Aws \ ForecastQueryService, Aws \ ForecastQueryService \ Exception, AWS \ ForecastService, Aws \ ForecastService \ Exception, AWS \ FraudDetector, Aws \ FraudDetector \ Exception, AWS \ FSx, AWS \ FSx \ Exception, AWS \ GameLift, Aws \ GameLift \ Exception, Aws \ Glacier, Aws \ Glacier \ Exception, AWS \ GlobalAccelerator, Aws \ GlobalAccelerator \ Exception, AWS \ Glue, AWS \ Glue \ Exception, AWS \ GlueDataBrew, Aws \ GlueDataBrew \ Exception, AWS \ Greengrass, Aws \ Greengrass \ Exception, AWS \ GreengrassV2, Aws \ GreengrassV2 \ Exception, AWS \ GroundStation, Aws \ GroundStation \ Exception, AWS \ GuardDuty, Aws \ GuardDuty \ Exception, AWS \ Handler, AWS \ Handler \ GuzzleV5, AWS \ Handler \ GuzzleV6, AWS \ Health, AWS \ Health \ Exception, AWS \ HealthLake, Aws \ HealthLake \ Exception, AWS \ Honeycode, AWS \ Honeycode \ Exception, Aws \ Iam, Aws \ Iam \ Exception, AWS \ IdentityStore, Aws \ IdentityStore \ Exception, AWS \ imagebuilder, AWS \ imagebuilder \ Exception, AWS \ ImportExport, Aws \ ImportExport \ Exception, AWS \ Inspector, AWS \ Inspector \ Exception, AWS \ Iot, Aws \ Iot \ Exception, Aws \ IoT1ClickDevicesService, Aws \ IoT1ClickDevicesService \ Exception, AWS \ IoT1ClickProjects, Aws \ IoT1ClickProjects \ Exception, AWS \ IoTAnalytics, AWS \ IoTAnalytics \ Exception, Aws \ IotDataPlane, Aws \ IotDataPlane \ Exception, AWS \ IoTDeviceAdvisor, Aws \ IoTDeviceAdvisor \ Exception, AWS \ IoTEvents, Aws \ IoTEvents \ Exception, Aws \ IoTEventsData, Aws \ IoTEventsData \ Exception, AWS \ IoTFleetHub, Aws \ IoTFleetHub \ Exception, Aws \ IoTJobsDataPlane, Aws \ IoTJobsDataPlane \ Exception, AWS \ IoTSecureTunneling, Aws \ IoTSecureTunneling \ Exception, AWS \ IoTSiteWise, AWS \ IoTSiteWise \ Exception, AWS \ IoTThingsGraph, Aws \ IoTThingsGraph \ Exception, AWS \ IoTWireless, AWS \ IoTWireless \ Exception, АВС \ ИВС, Aws \ IVS \ Exception, Aws \ Kafka, Aws \ Kafka \ Exception, Авс \ Кендра, Aws \ kendra \ Exception, AWS \ Kinesis, Aws \ Kinesis \ Exception, AWS \ KinesisAnalytics, Aws \ KinesisAnalytics \ Exception, AWS \ KinesisAnalyticsV2, Aws \ KinesisAnalyticsV2 \ Exception, AWS \ KinesisVideo, AWS \ KinesisVideo \ Exception, AWS \ KinesisVideoArchivedMedia, Aws \ KinesisVideoArchivedMedia \ Exception, AWS \ KinesisVideoMedia, AWS \ KinesisVideoMedia \ Exception, AWS \ KinesisVideoSignalingChannels, Aws \ KinesisVideoSignalingChannels \ Exception, AWS \ Kms, AWS \ Kms \ Exception, AWS \ LakeFormation, Aws \ LakeFormation \ Exception, AWS \ Lambda, Aws \ Lambda \ Exception, Aws \ LexModelBuildingService, Aws \ LexModelBuildingService \ Exception, AWS \ LexModelsV2, Aws \ LexModelsV2 \ Exception, AWS \ LexRuntimeService, Aws \ LexRuntimeService \ Exception, AWS \ LexRuntimeV2, Aws \ LexRuntimeV2 \ Exception, AWS \ LicenseManager, Aws \ LicenseManager \ Exception, AWS \ Lightsail, AWS \ Lightsail \ Exception, AWS \ LocationService, Aws \ LocationService \ Exception, AWS \ LookoutEquipment, Aws \ LookoutEquipment \ Exception, AWS \ LookoutforVision, Aws \ LookoutforVision \ Exception, AWS \ LookoutMetrics, Aws \ LookoutMetrics \ Exception, AWS \ MachineLearning, AWS \ MachineLearning \ Exception, AWS \ Macie, AWS \ Macie \ Exception, AWS \ Macie2, Aws \ Macie2 \ Exception, AWS \ ManagedBlockchain, Aws \ ManagedBlockchain \ Exception, AWS \ MarketplaceCatalog, AWS \ MarketplaceCatalog \ Exception, AWS \ MarketplaceCommerceAnalytics, Aws \ MarketplaceCommerceAnalytics \ Exception, Aws \ MarketplaceEntitlementService, Aws \ MarketplaceEntitlementService \ Exception, AWS \ MarketplaceMetering, Aws \ MarketplaceMetering \ Exception, AWS \ MediaConnect, Aws \ MediaConnect \ Exception, AWS \ MediaConvert, Aws \ MediaConvert \ Exception, AWS \ MediaLive, AWS \ MediaLive \ Exception, AWS \ MediaPackage, AWS \ MediaPackage \ Exception, AWS \ MediaPackageVod, Aws \ MediaPackageVod \ Exception, AWS \ MediaStore, Aws \ MediaStore \ Exception, Aws \ MediaStoreData, Aws \ MediaStoreData \ Exception, AWS \ MediaTailor, Aws \ MediaTailor \ Exception, AWS \ MGN, AWS \ mgn \ Exception, AWS \ MigrationHub, Aws \ MigrationHub \ Exception, Aws \ MigrationHubConfig, Aws \ MigrationHubConfig \ Exception, AWS \ Mobile, AWS \ Mobile \ Exception, AWS \ MQ, Aws \ MQ \ Exception, AWS \ MTurk, Aws \ MTurk \ Exception, AWS \ Multipart, AWS \ MWAA, Aws \ MWAA \ Exception, AWS \ Neptune, AWS \ Neptune \ Exception, AWS \ NetworkFirewall, Aws \ NetworkFirewall \ Exception, AWS \ NetworkManager, Aws \ NetworkManager \ Exception, AWS \ NimbleStudio, Aws \ NimbleStudio \ Exception, AWS \ OpsWorks, Aws \ OpsWorks \ Exception, AWS \ OpsWorksCM, Aws \ OpsWorksCM \ Exception, AWS \ Организации, AWS \ Organizations \ Exception, Aws \ Outposts, Aws \ Outposts \ Exception, AWS \ Personalize, AWS \ Personalize \ Exception, AWS \ PersonalizeEvents, Aws \ PersonalizeEvents \ Exception, AWS \ PersonalizeRuntime, Aws \ PersonalizeRuntime \ Exception, AWS \ PI, Aws \ PI \ Exception, AWS \ Pinpoint, AWS \ Pinpoint \ Exception, AWS \ PinpointEmail, Aws \ PinpointEmail \ Exception, AWS \ PinpointSMSVoice, Aws \ PinpointSMSVoice \ Exception, AWS \ Polly, AWS \ Polly \ Exception, AWS \ Pricing, AWS \ Pricing \ Exception, AWS \ PrometheusService, Aws \ PrometheusService \ Exception, AWS \ Proton, AWS \ Proton \ Exception, AWS \ QLDB, Aws \ QLDB \ Exception, Aws \ QLDBSession, Aws \ QLDBSession \ Exception, AWS \ QuickSight, AWS \ QuickSight \ Exception, AWS \ RAM, AWS \ RAM \ Exception, AWS \ RDS, Aws \ Rds \ Exception, Aws \ RDSDataService, Aws \ RDSDataService \ Exception, AWS \ Redshift, AWS \ Redshift \ Exception, Aws \ RedshiftDataAPIService, Aws \ RedshiftDataAPIService \ Exception, AWS \ Rekognition, AWS \ Rekognition \ Exception, AWS \ ResourceGroups, Aws \ ResourceGroups \ Exception, Aws \ ResourceGroupsTaggingAPI, Aws \ ResourceGroupsTaggingAPI \ Exception, AWS \ Retry, AWS \ Retry \ Exception, AWS \ RoboMaker, AWS \ RoboMaker \ Exception, AWS \ Route53, Aws \ Route53 \ Exception, Aws \ Route53Domains, Aws \ Route53Domains \ Exception, AWS \ Route53Resolver, Aws \ Route53Resolver \ Exception, AWS \ S3, AWS \ S3 \ Crypto, Aws \ S3 \ Exception, AWS \ S3 \ RegionalEndpoint, Aws \ S3 \ RegionalEndpoint \ Exception, AWS \ S3 \ UseArnRegion, Aws \ S3 \ UseArnRegion \ Exception, Aws \ S3Control, Aws \ S3Control \ Exception, Aws \ S3Outposts, Aws \ S3Outposts \ Exception, AWS \ SageMaker, Aws \ SageMaker \ Exception, AWS \ SagemakerEdgeManager, Aws \ SagemakerEdgeManager \ Exception, Aws \ SageMakerFeatureStoreRuntime, Aws \ SageMakerFeatureStoreRuntime \ Exception, Aws \ SageMakerRuntime, Aws \ SageMakerRuntime \ Exception, AWS \ SavingsPlans, AWS \ SavingsPlans \ Exception, AWS \ Schemas, AWS \ Schemas \ Exception, AWS \ SecretsManager, Aws \ SecretsManager \ Exception, AWS \ SecurityHub, Aws \ SecurityHub \ Exception, Aws \ ServerlessApplicationRepository, Aws \ ServerlessApplicationRepository \ Exception, AWS \ ServiceCatalog, Aws \ ServiceCatalog \ Exception, AWS \ ServiceDiscovery, Aws \ ServiceDiscovery \ Exception, AWS \ ServiceQuotas, Aws \ ServiceQuotas \ Exception, AWS \ Ses, Aws \ Ses \ Exception, AWS \ SesV2, Aws \ SesV2 \ Exception, AWS \ Sfn, Aws \ Sfn \ Exception, AWS \ Shield, AWS \ Shield \ Exception, AWS \ Signature, AWS \ подписчик, AWS \ signer \ Exception, AWS \ Sms, Aws \ Sms \ Exception, AWS \ SnowBall, AWS \ SnowBall \ Exception, Aws \ Sns, Aws \ Sns \ Exception, AWS \ Sqs, AWS \ Sqs \ Exception, AWS \ Ssm, Aws \ Ssm \ Exception, AWS \ SSMContacts, Aws \ SSMContacts \ Exception, Aws \ SSMIncidents, Aws \ SSMIncidents \ Exception, AWS \ SSO, Aws \ SSO \ Exception, Aws \ SSOAdmin, Aws \ SSOAdmin \ Exception, AWS \ SSOOIDC, Aws \ SSOOIDC \ Exception, AWS \ StorageGateway, Aws \ StorageGateway \ Exception, Aws \ Sts, Aws \ Sts \ Exception, AWS \ Sts \ RegionalEndpoints, Aws \ Sts \ RegionalEndpoints \ Exception, AWS \ Поддержка, AWS \ Support \ Exception, AWS \ Swf, AWS \ Swf \ Exception, AWS \ Synthetics, AWS \ Synthetics \ Exception, AWS \ Textract, Aws \ Textract \ Exception, Aws \ TimestreamQuery, Aws \ TimestreamQuery \ Exception, Aws \ TimestreamWrite, Aws \ TimestreamWrite \ Exception, AWS \ TranscribeService, Aws \ TranscribeService \ Exception, AWS \ Transfer, AWS \ Transfer \ Exception, AWS \ Translate, Aws \ Translate \ Exception, AWS \ Waf, Aws \ Waf \ Exception, AWS \ WafRegional, Aws \ WafRegional \ Exception, AWS \ WAFV2, Aws \ WAFV2 \ Exception, AWS \ WellArchitected, Aws \ WellArchitected \ Exception, AWS \ WorkDocs, Aws \ WorkDocs \ Exception, AWS \ WorkLink, AWS \ WorkLink \ Exception, AWS \ WorkMail, Aws \ WorkMail \ Exception, Aws \ WorkMailMessageFlow, Aws \ WorkMailMessageFlow \ Exception, AWS \ WorkSpaces, Aws \ WorkSpaces \ Exception, AWS \ XRay, AWS \ XRay \ Exception, Жрать http, GuzzleHttp \ Promise, Жрут http \ psr7, Пср, Пср \ HTTP, Пср \ HTTP \ Сообщение

Поставщик конфигурации - это функция, которая возвращает обещание, которое выполняется с помощью объекта конфигурации.Этот класс обеспечивает базовую функциональность может использоваться конкретными реализациями поставщика конфигурации

Этот клиент используется для взаимодействия со службой Access Analyzer .

Этот клиент используется для взаимодействия со службой AWS Certificate Manager .

Этот клиент используется для взаимодействия со службой AWS Certificate Manager Private Certificate Authority .

Этот клиент используется для взаимодействия со службой Alexa For Business .

Этот клиент используется для взаимодействия со службой AWS Amplify .

Этот клиент используется для взаимодействия со службой AmplifyBackend .

Базовый класс, который используется большинством фигур API

DateTime переопределяет, что делает DateTime более плавной работой в виде строки, с документами JSON и с JMESPath.

Инкапсулирует строки документации для данной версии службы и предоставляет методы для извлечения желаемых частей, связанных с услугой, операция, ошибка или форма (т.е., параметр).

Представляет операцию API.

Представляет модель API веб-службы.

Базовый класс, представляющий смоделированную фигуру.

Строит фигуру на основе ссылок на фигуру.

Представляет форму структуры и ссылки на форму элемента разрешения.

Представляет форму отметки времени.

Проверяет схему по хешу ввода.

Этот клиент используется для взаимодействия со службой AWS API Gateway .

Этот клиент используется для взаимодействия со службой AmazonApiGatewayManagementApi .

Этот клиент используется для взаимодействия со службой AmazonApiGatewayV2 .

Этот клиент используется для взаимодействия со службой Amazon AppConfig .

Этот клиент используется для взаимодействия со службой Amazon Appflow .

Этот клиент используется для взаимодействия со службой Amazon AppIntegrations Service .

Этот клиент используется для взаимодействия со службой Application Auto Scaling .

Этот клиент используется для взаимодействия со службой AWS Application Cost Profiler .

Этот клиент используется для взаимодействия со службой AWS Application Discovery Service .

Этот клиент используется для взаимодействия со службой Amazon CloudWatch Application Insights .

Этот клиент используется для взаимодействия со службой AWS App Mesh .

Этот клиент используется для взаимодействия с сервисом AWS Service Catalog App Registry .

Этот клиент используется для взаимодействия со службой AWS App Runner .

Этот клиент используется для взаимодействия со службой Amazon AppStream .

Этот клиент используется для взаимодействия со службой AWS AppSync .

Этот клиент используется для взаимодействия со службой Amazon Athena .

Этот клиент используется для взаимодействия со службой AWS Audit Manager .

Этот клиент используется для взаимодействия со службой Amazon Augmented AI Runtime .

Этот клиент используется для взаимодействия со службой AWS Auto Scaling Plan .

Реализация клиента AWS по умолчанию

Этот клиент используется для взаимодействия со службой AWS Backup .

Этот клиент используется для взаимодействия со службой AWS Batch .

Этот клиент используется для взаимодействия со службой Braket .

Этот клиент используется для взаимодействия с сервисом AWS Budgets .

Этот клиент используется для взаимодействия со службой Amazon Chime .

Предоставляет доступ к параметрам конфигурации мониторинга на стороне клиента: client_id, enabled, host, port

Этот клиент используется для взаимодействия с сервисом AWS Cloud9 .

Этот клиент используется для взаимодействия со службой Amazon CloudDirectory .

Этот клиент используется для взаимодействия со службой AWS CloudFormation .

Этот клиент используется для взаимодействия со службой Amazon CloudFront .

Создает подписанные URL-адреса для ресурсов Amazon CloudFront.

Этот клиент используется для взаимодействия с AWS CloudHSM .

Этот клиент используется для взаимодействия со службой AWS CloudHSM V2 .

Этот клиент используется для взаимодействия со службой Amazon CloudSearch .

Этот клиент используется для поиска и загрузки документов в домен Amazon CloudSearch .

Этот клиент используется для взаимодействия со службой AWS CloudTrail .

Aws \ CloudTrail \ LogFileIterator обеспечивает простой способ перебора файл журнала, созданный AWS CloudTrail.

Этот класс обеспечивает простой способ чтения файлов журналов, созданных AWS. CloudTrail.

Aws \ CloudTrail \ LogRecordIterator обеспечивает простой способ перебора записи журнала из файлов журнала, созданных AWS CloudTrail.

Этот клиент используется для взаимодействия со службой Amazon CloudWatch .

Этот клиент используется для взаимодействия со службой Amazon CloudWatch Events .

Этот клиент используется для взаимодействия со службой Amazon CloudWatch Logs .

Этот клиент используется для взаимодействия со службой CodeArtifact .

Этот клиент используется для взаимодействия с сервисом AWS CodeBuild .

Этот клиент используется для взаимодействия со службой AWS CodeCommit .

Этот клиент используется для взаимодействия с AWS CodeDeploy

Этот клиент используется для взаимодействия со службой Amazon CodeGuru Profiler .

Этот клиент используется для взаимодействия со службой Amazon CodeGuru Reviewer .

Этот клиент используется для взаимодействия со службой Amazon CodePipeline .

Этот клиент используется для взаимодействия с сервисом AWS CodeStar .

Этот клиент используется для взаимодействия с сервисом подключений AWS CodeStar .

Этот клиент используется для взаимодействия со службой AWS CodeStar Notifications .

Этот клиент используется для взаимодействия со службой Amazon Cognito Identity .

Этот клиент используется для взаимодействия со службой Amazon Cognito Identity Provider .

Этот клиент используется для взаимодействия со службой Amazon Cognito Sync .

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

Этот клиент используется для взаимодействия со службой Amazon Comprehend .

Этот клиент используется для взаимодействия со службой AWS Comprehend Medical .

Этот клиент используется для взаимодействия со службой AWS Compute Optimizer .

Этот клиент используется для взаимодействия с AWS Config.

Этот клиент используется для взаимодействия со службой Amazon Connect Service .

Этот клиент используется для взаимодействия со службой Amazon Connect Contact Lens .

Этот клиент используется для взаимодействия со службой Amazon Connect Participant Service .

Этот клиент используется для взаимодействия со службой AWS Cost and Usage Report Service .

Этот клиент используется для взаимодействия со службой AWS Cost Explorer Service .

Поставщик учетных данных, который предоставляет учетные данные, принимая на себя роль Дополнительную информацию см .: http: // docs.aws.amazon.com/aws-sdk-php/v3/api/api-sts-2011-06-15.html#assumerole

Поставщик учетных данных, который предоставляет учетные данные, принимая на себя роль с веб-идентификатором Дополнительную информацию см: https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-sts-2011-06-15.html#assumerolewithwebidentity

.

Базовая реализация интерфейса AWS Credentials, позволяющая вызывающим абонентам передайте в конструктор ключи доступа AWS и секретный ключ доступа AWS.

Поставщик учетных данных, который получает учетные данные с помощью запроса GET.Переменная среды ECS используется при построении URI запроса.

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

Реализация шифра CBC для использования с AesEncryptingStream или AesDecrypting поток.

Использует KMS для предоставления материалов для шифрования и дешифрования данных.

Использует KMS для предоставления материалов для шифрования и дешифрования данных. Этот Реализация V2 должна использоваться с клиентами шифрования V2 (т.е.е. S3EncryptionClientV2).

Этот клиент используется для взаимодействия со службой Amazon Connect Customer Profiles .

Этот клиент используется для взаимодействия со службой AWS Database Migration Service .

Этот клиент используется для взаимодействия со службой AWS Data Exchange .

Этот клиент используется для взаимодействия со службой AWS Data Pipeline .

Этот клиент используется для взаимодействия со службой AWS DataSync .

Этот клиент используется для взаимодействия со службой Amazon DynamoDB Accelerator (DAX) .

Этот клиент используется для взаимодействия со службой Amazon Detective .

Этот клиент используется для взаимодействия со службой Amazon DeviceFarm .

Этот клиент используется для взаимодействия со службой Amazon DevOps Guru .

Этот клиент используется для взаимодействия со службой AWS Direct Connect .

Клиент AWS Directory Service

Этот клиент используется для взаимодействия со службой Amazon Data Lifecycle Manager .

Этот клиент используется для взаимодействия с Amazon DocumentDB с помощью службы совместимости с MongoDB.

Представляет простой интерфейс кеширования.

Специальный объект для представления двоичного (B) значения DynamoDB.

Этот клиент используется для взаимодействия со службой Amazon DynamoDB .

Блокирующее соединение добавляет логику блокировки к операции чтения.

Маршалирует и демаршалирует документы JSON и массивы PHP в элементы DynamoDB.

Специальный объект для представления значения DynamoDB Number (N).

Предоставляет интерфейс для использования Amazon DynamoDB в качестве хранилища сеансов путем подключения в хуки обработчика сеанса PHP. После регистрации вы можете использовать собственный $ _SESSION суперглобальных и сеансовых функций, и сеансы будут автоматически сохраняется в DynamoDB.DynamoDB - отличное хранилище сеансов решение благодаря его скорости, масштабируемости и отказоустойчивости.

Специальный объект для представления значения набора DynamoDB (SS / NS / BS).

Стандартное соединение выполняет операции чтения и записи в DynamoDB.

WriteRequestBatch - это объект, способный эффективно отправлять Запросы DynamoDB BatchWriteItem из поставленных в очередь запросов на размещение и удаление элементов. Запросы. Пакет пытается отправить запросы с наименьшим количеством запросов. в DynamoDB, а также повторно ставит в очередь все необработанные элементы, чтобы гарантировать что все товары отправлены.

Этот клиент используется для взаимодействия со службой Amazon DynamoDb Streams .

Этот клиент используется для взаимодействия со службой Amazon Elastic Block Store .

Клиент, используемый для взаимодействия с Amazon EC2.

Этот клиент используется для взаимодействия со службой AWS EC2 Instance Connect .

Этот клиент используется для взаимодействия со службой Amazon EC2 Container Registry .

Этот клиент используется для взаимодействия со службой Amazon Elastic Container Registry Public .

Этот клиент используется для взаимодействия с Amazon ECS .

Этот клиент используется для взаимодействия с Amazon EFS .

Этот клиент используется для взаимодействия со службой Amazon Elastic Container Service для службы Kubernetes .

Этот клиент используется для взаимодействия со службой Amazon ElastiCache .

Этот клиент используется для взаимодействия со службой AWS Elastic Beanstalk .

Этот клиент используется для взаимодействия со службой Amazon Elastic Inference .

Этот клиент используется для взаимодействия со службой Elastic Load Balancing .

Этот клиент используется для взаимодействия со службой Elastic Load Balancing .

Этот клиент используется для взаимодействия со службой Amazon Elasticsearch Service .

Этот клиент используется для взаимодействия со службой Amazon Elastic Transcoder .

Этот клиент используется для взаимодействия со службой Amazon Elastic MapReduce (Amazon EMR) .

Этот клиент используется для взаимодействия со службой Amazon EMR Containers .

Реализация раздела AWS по умолчанию.

Предоставляет конечные точки на основе массива конфигурации шаблона конечных точек.

Предоставляет доступ к параметрам конфигурации обнаружения конечных точек: 'enabled', 'cache_limit'

Этот клиент используется для взаимодействия со службой Amazon EventBridge .

Этот клиент используется для взаимодействия со службой FinSpace User Environment Management. Служба .

Этот клиент используется для взаимодействия со службой FinSpace Public API .

Этот клиент используется для взаимодействия со службой Amazon Kinesis Firehose .

Этот клиент используется для взаимодействия со службой AWS Fault Injection Simulator .

Этот клиент используется для взаимодействия со службой Firewall Management Service .

Этот клиент используется для взаимодействия со службой Amazon Forecast Query Service .

Этот клиент используется для взаимодействия со службой Amazon Forecast Service .

Этот клиент используется для взаимодействия со службой Amazon Fraud Detector .

Этот клиент используется для взаимодействия со службой Amazon FSx .

Этот клиент используется для взаимодействия со службой Amazon GameLift .

Этот клиент используется для взаимодействия со службой Amazon Glacier .

Инкапсулирует выполнение многокомпонентной загрузки в Glacier.

Инкапсулирует создание хэша дерева из потоковых данных

Этот клиент используется для взаимодействия со службой AWS Global Accelerator .

Этот клиент используется для взаимодействия со службой AWS Glue .

Этот клиент используется для взаимодействия со службой AWS Glue DataBrew .

Этот клиент используется для взаимодействия со службой AWS Greengrass .

Этот клиент используется для взаимодействия со службой AWS IoT Greengrass V2 .

Этот клиент используется для взаимодействия со службой AWS Ground Station .

Этот клиент используется для взаимодействия со службой Amazon GuardDuty .

Обработчик запросов, который отправляет запросы, совместимые с PSR-7, с Guzzle 5.

Адаптирует поток PSR-7 к потоку Guzzle 5.

Адаптирует поток Guzzle 5 к потоку PSR-7.

Обработчик запросов, который отправляет запросы, совместимые с PSR-7, с Guzzle 6.

Строит одну функцию-обработчик из нуля или более функций промежуточного программного обеспечения и обработчик. Затем функция обработчика используется для отправки командных объектов и вернуть обещание, которое разрешено с помощью объекта результата AWS.

Декоратор потока, который вычисляет скользящий хэш потока при его чтении.

Этот клиент используется для взаимодействия с API AWS Health и службой уведомлений .

Этот клиент используется для взаимодействия со службой Amazon HealthLake .

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

Этот клиент используется для взаимодействия со службой Amazon Honeycode .

Этот клиент используется для взаимодействия со службой AWS Identity and Access Management (AWS IAM) .

Этот клиент используется для взаимодействия со службой AWS SSO Identity Store .

Этот клиент используется для взаимодействия со службой EC2 Image Builder .

Этот клиент используется для взаимодействия со службой AWS Import / Export .

Этот клиент используется для взаимодействия со службой Amazon Inspector .

Этот клиент используется для взаимодействия со службой AWS IoT 1-Click Devices Service .

Этот клиент используется для взаимодействия со службой AWS IoT 1-Click Projects Service .

Этот клиент используется для взаимодействия со службой AWS IoT .

Этот клиент используется для взаимодействия со службой AWS IoT Analytics .

Этот клиент используется для взаимодействия со службой AWS IoT Data Plane .

Этот клиент используется для взаимодействия со службой AWS IoT Core Device Advisor .

Этот клиент используется для взаимодействия со службой AWS IoT Events .

Этот клиент используется для взаимодействия со службой AWS IoT Events Data .

Этот клиент используется для взаимодействия с сервисом AWS IoT Fleet Hub .

Этот клиент используется для взаимодействия со службой AWS IoT Jobs Data Plane .

Этот клиент используется для взаимодействия со службой AWS IoT Secure Tunneling .

Этот клиент используется для взаимодействия со службой AWS IoT SiteWise .

Этот клиент используется для взаимодействия со службой AWS IoT Things Graph .

Этот клиент используется для взаимодействия со службой AWS IoT Wireless .

Этот клиент используется для взаимодействия со службой Amazon Interactive Video Service .

Загружает файлы JSON и компилирует их в массивы PHP.

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

Этот клиент используется для взаимодействия со службой AWSKendraFrontendService .

Этот клиент используется для взаимодействия со службой Amazon Kinesis .

Этот клиент используется для взаимодействия со службой Amazon Kinesis Analytics .

Этот клиент используется для взаимодействия со службой Amazon Kinesis Analytics .

Этот клиент используется для взаимодействия со службой Amazon Kinesis Video Streams .

Этот клиент используется для взаимодействия со службой Amazon Kinesis Video Streams Archived Media .

Этот клиент используется для взаимодействия со службой Amazon Kinesis Video Streams Media .

Этот клиент используется для взаимодействия со службой Amazon Kinesis Video Signaling Channels .

Этот клиент используется для взаимодействия с AWS Key Management Service .

Этот клиент используется для взаимодействия со службой AWS Lake Formation .

Этот клиент используется для взаимодействия с AWS Lambda

Этот клиент используется для взаимодействия со службой Amazon Lex Model Building Service .

Этот клиент используется для взаимодействия со службой Amazon Lex Model Building V2 .

Этот клиент используется для взаимодействия со службой Amazon Lex Runtime Service .

Этот клиент используется для взаимодействия со службой Amazon Lex Runtime V2 .

Этот клиент используется для взаимодействия со службой AWS License Manager .

Этот клиент используется для взаимодействия со службой Amazon Lightsail .

Этот клиент используется для взаимодействия со службой Amazon Location Service .

Этот клиент используется для взаимодействия со службой Amazon Lookout for Equipment .

Этот клиент используется для взаимодействия со службой Amazon Lookout for Vision .

Этот клиент используется для взаимодействия со службой Amazon Lookout for Metrics .

Простой кэш LRU в памяти, который ограничивает количество кэшируемых записей.

Клиент машинного обучения Amazon.

Этот клиент используется для взаимодействия со службой Amazon Macie 2 .

Этот клиент используется для взаимодействия со службой Amazon Macie .

Этот клиент используется для взаимодействия со службой Amazon Managed Blockchain .

Этот клиент используется для взаимодействия со службой AWS Marketplace Catalog Service .

Этот клиент используется для взаимодействия со службой AWS Marketplace Commerce Analytics .

Этот клиент используется для взаимодействия со службой AWS Marketplace Entitlement Service .

Этот клиент используется для взаимодействия со службой AWSMarketplace Metering .

Этот клиент используется для взаимодействия со службой AWS MediaConnect .

Этот клиент используется для взаимодействия со службой AWS Elemental MediaConvert .

Этот клиент используется для взаимодействия со службой AWS Elemental MediaLive .

Этот клиент используется для взаимодействия со службой AWS Elemental MediaPackage .

Этот клиент используется для взаимодействия со службой AWS Elemental MediaPackage VOD .

Этот клиент используется для взаимодействия со службой AWS Elemental MediaStore .

Этот клиент используется для взаимодействия со службой AWS Elemental MediaStore Data Plane .

Этот клиент используется для взаимодействия со службой AWS MediaTailor .

Этот клиент используется для взаимодействия со службой Application Migration Service .

Этот клиент используется для взаимодействия со службой AWS Migration Hub .

Этот клиент используется для взаимодействия со службой AWS Migration Hub Config .

Этот клиент используется для взаимодействия со службой AWS Mobile .

Возвращает обещания, которые были отклонены или выполнены с использованием очереди Объекты Aws \ ResultInterface и Aws \ Exception \ AwsException.

Этот клиент используется для взаимодействия со службой AmazonMQ .

Этот клиент используется для взаимодействия со службой Amazon Mechanical Turk Requester Service .

Представление составной загрузки.

Представляет клиента AWS.

Этот клиент используется для взаимодействия со службой AmazonMWAA .

Этот клиент используется для взаимодействия со службой Amazon Neptune .

Этот клиент используется для взаимодействия со службой AWS Network Firewall .

Этот клиент используется для взаимодействия со службой AWS Network Manager .

Этот клиент используется для взаимодействия со службой AmazonNimbleStudio .

Этот клиент используется для взаимодействия со службой AWS OpsWorks .

Этот клиент используется для взаимодействия со службой AWS OpsWorks для Chef Automate .

Этот клиент используется для взаимодействия со службой AWS Organizations .

Этот клиент используется для взаимодействия с сервисом AWS Outposts .

Этот клиент используется для взаимодействия со службой Amazon Personalize .

Этот клиент используется для взаимодействия со службой Amazon Personalize Events .

Этот клиент используется для взаимодействия со службой Amazon Personalize Runtime .

Инкрементное хеширование с использованием хэш-функций PHP.

Этот клиент используется для взаимодействия со службой AWS Performance Insights .

Этот клиент используется для взаимодействия со службой Amazon Pinpoint .

Этот клиент используется для взаимодействия со службой Amazon Pinpoint Email Service .

Этот клиент используется для взаимодействия со службой Amazon Pinpoint SMS and Voice Service .

Этот клиент используется для взаимодействия со службой Amazon Polly .

Этот клиент используется для взаимодействия со службой AWS Price List Service .

Этот клиент используется для взаимодействия со службой Amazon Prometheus Service .

Этот клиент используется для взаимодействия со службой AWS Proton .

Представляет простой интерфейс кеширования.

Представляет простой интерфейс кеширования.

Этот клиент используется для взаимодействия со службой Amazon QLDB .

Этот клиент используется для взаимодействия со службой Amazon QLDB Session .

Этот клиент используется для взаимодействия со службой Amazon QuickSight .

Этот клиент используется для взаимодействия со службой AWS Resource Access Manager .

Создает токены аутентификации RDS для использования с аутентификацией IAM.

Этот клиент используется для взаимодействия со службой Amazon Relational Database Service (Amazon RDS) .

Этот клиент используется для взаимодействия со службой AWS RDS DataService .

Этот клиент используется для взаимодействия со службой Amazon Redshift .

Этот клиент используется для взаимодействия со службой Redshift Data API Service .

Этот клиент используется для взаимодействия со службой Amazon Rekognition .

Этот клиент используется для взаимодействия с сервисом AWS Resource Groups .

Этот клиент используется для взаимодействия с сервисом AWS Resource Groups Tagging API .

Итератор, который выдает каждую страницу результатов операции со страницами.

Предоставляет доступ к конфигурации повторных попыток

Этот клиент используется для взаимодействия со службой AWS RoboMaker .

Этот клиент используется для взаимодействия со службой Amazon Route 53 .

Этот клиент используется для взаимодействия со службой Amazon Route 53 Domains .

Этот клиент используется для взаимодействия со службой Amazon Route 53 Resolver .

Эффективно удаляет множество объектов из одной корзины Amazon S3 с помощью итератор, выдающий ключи. Удаление производится с помощью DeleteObjects API. операция.

Сохраняет и считывает информацию о шифровании MetadataEnvelope в файле на Amazon. S3.

Предоставляет оболочку для S3Client, которая предоставляет функции для шифрования данные о вызовах putObject [Async] и дешифровать данные при вызовах getObject [Async].

Предоставляет оболочку для S3Client, которая предоставляет функции для шифрования данные о вызовах putObject [Async] и дешифровать данные при вызовах getObject [Async].

Инкапсулирует выполнение многокомпонентной загрузки зашифрованного объекта в S3.

Инкапсулирует выполнение многокомпонентной загрузки зашифрованного объекта в S3.

Инкапсулирует выполнение многокомпонентной загрузки в S3 или Glacier.

Копирует объекты из одного места S3 в другое, используя многокомпонентную копию. при необходимости.

Загружает объект в S3 с помощью команды PutObject или многокомпонентной загрузки как соответствующий.

Инкапсулирует логику для получения данных для формы загрузки POST объекта S3

Предоставляет доступ к параметрам конфигурации региональных конечных точек S3: endpoints_type

Клиент, используемый для взаимодействия с Amazon Simple Storage Service (Amazon S3) .

Многорегиональный клиент Amazon Simple Storage Service .

Извлекает регион, сегмент, ключ и, если URI находится в стиле пути

Оболочка потока Amazon S3 для использования файлов "s3: ///" с PHP потоки, поддерживающие «r», «w», «a», «x».

Передает файлы из локальной файловой системы в S3 или из S3 в локальную файловая система.

Этот клиент используется для взаимодействия со службой AWS S3 Control .

Этот клиент используется для взаимодействия с Amazon S3 на службе Outposts .

Этот клиент используется для взаимодействия со службой Amazon SageMaker Service .

Этот клиент используется для взаимодействия со службой Amazon Sagemaker Edge Manager .

Этот клиент используется для взаимодействия со службой Amazon SageMaker Feature Store Runtime .

Этот клиент используется для взаимодействия со службой Amazon SageMaker Runtime .

Этот клиент используется для взаимодействия со службой AWS Savings Plan .

Этот клиент используется для взаимодействия со службой Schemas .

Строит клиенты AWS на основе параметров конфигурации.

Этот клиент используется для взаимодействия со службой AWS Secrets Manager .

Этот клиент используется для взаимодействия со службой AWS SecurityHub .

Этот клиент используется для взаимодействия со службой AWSServerlessApplicationRepository .

Этот клиент используется для взаимодействия с сервисом AWS Service Catalog .

Этот клиент используется для взаимодействия со службой Amazon Route 53 Auto Naming .

Этот клиент используется для взаимодействия со службой Service Quotas .

Этот клиент используется для взаимодействия с Amazon Simple Email Service (Amazon SES) .

Этот клиент используется для взаимодействия со службой Amazon Simple Email Service .

Этот клиент используется для взаимодействия со службой AWS Step Functions .

Этот клиент используется для взаимодействия со службой AWS Shield .

Предоставляет анонимный клиентский доступ (не подписывает запросы).

Поддержка подписи Amazon S3 версии 4.

Этот клиент используется для взаимодействия со службой AWS Signer .

Этот клиент используется для взаимодействия со службой AWS Server Migration Service .

Этот клиент используется для взаимодействия со службой Amazon Import / Export Snowball .

Представляет сообщение SNS, полученное через http.

Использует openssl для проверки сообщений SNS, чтобы убедиться, что они были отправлены AWS.

Этот клиент используется для взаимодействия со службой Amazon Simple Notification Service (Amazon SNS) .

Клиент, используемый для взаимодействия с Amazon Simple Queue Service (Amazon SQS)

Клиент Amazon EC2 Simple Systems Manager.

Этот клиент используется для взаимодействия со службой AWS Systems Manager Incident Manager Контакты .

Этот клиент используется для взаимодействия со службой AWS Systems Manager Incident Manager .

Этот клиент используется для взаимодействия со службой AWS Single Sign-On .

Этот клиент используется для взаимодействия со службой AWS Single Sign-On Admin .

Этот клиент используется для взаимодействия со службой AWS SSO OIDC .

Клиент AWS Storage Gateway.

Предоставляет доступ к параметрам конфигурации региональных конечных точек STS: endpoints_type

Этот клиент используется для взаимодействия с сервисом AWS Security Token Service (AWS STS) .

Клиент Amazon Simple Workflow Service (Amazon SWF).

Этот клиент используется для взаимодействия со службой Synthetics .

Этот клиент используется для взаимодействия со службой Amazon Textract .

Этот клиент используется для взаимодействия со службой Amazon Timestream Query .

Этот клиент используется для взаимодействия со службой Amazon Timestream Write .

Отслеживает изменения состояния между промежуточным программным обеспечением.

Этот клиент используется для взаимодействия со службой Amazon Transcribe Service .

Этот клиент используется для взаимодействия с сервисом AWS Transfer for SFTP .

Этот клиент используется для взаимодействия со службой Amazon Translate .

Этот клиент используется для взаимодействия со службой AWS WAF .

Этот клиент используется для взаимодействия со службой AWS WAF Regional .

Этот клиент используется для взаимодействия со службой AWS WAFV2 .

«Официанты» связаны с ресурсом AWS (например, с экземпляром EC2) и опрашивают этот ресурс и до тех пор, пока он не находится в определенном состоянии.

Этот клиент используется для взаимодействия с сервисом AWS Well-Architected Tool .

Этот клиент используется для взаимодействия со службой Amazon WorkDocs .

Этот клиент используется для взаимодействия со службой Amazon WorkLink .

Этот клиент используется для взаимодействия со службой Amazon WorkMail .

Этот клиент используется для взаимодействия со службой Amazon WorkMail Message Flow .

Клиент Amazon WorkSpaces.

Преобразует обработчик HTTP в обработчик командного HTTP.

Этот клиент используется для взаимодействия со службой AWS X-Ray .

Представляет ошибку при взаимодействии со службой Access Analyzer .

Представляет ошибку при взаимодействии со службой AWS Certificate Manager .

Представляет ошибку при взаимодействии со службой AWS Certificate Manager Private Certificate Authority .

Представляет ошибку при взаимодействии со службой Alexa For Business .

Представляет ошибку при взаимодействии со службой AWS Amplify .

Представляет ошибку при взаимодействии со службой AmplifyBackend .

Интерфейс для добавления и получения событий мониторинга на стороне клиента

Представляет ошибку при взаимодействии со службой AWS API Gateway .

Представляет ошибку при взаимодействии со службой AmazonApiGatewayManagementApi .

Представляет ошибку при взаимодействии со службой AmazonApiGatewayV2 .

Представляет ошибку при взаимодействии со службой Amazon AppConfig .

Представляет ошибку при взаимодействии со службой Amazon Appflow .

Представляет ошибку при взаимодействии со службой Amazon AppIntegrations Service .

Представляет ошибку при взаимодействии со службой Application Auto Scaling .

Представляет ошибку при взаимодействии со службой AWS Application Cost Profiler .

Представляет ошибку при взаимодействии со службой AWS Application Discovery Service .

Представляет ошибку при взаимодействии со службой Amazon CloudWatch Application Insights .

Представляет ошибку при взаимодействии со службой AWS App Mesh .

Представляет ошибку при взаимодействии со службой AWS Service Catalog App Registry .

Представляет ошибку при взаимодействии со службой AWS App Runner .

Представляет ошибку при взаимодействии со службой Amazon AppStream .

Представляет ошибку при взаимодействии со службой AWS AppSync .

представляет собой неудачную попытку построить Arn

Представляет ошибку при взаимодействии со службой Amazon Athena .

Представляет ошибку при взаимодействии со службой AWS Audit Manager .

Представляет ошибку при взаимодействии со службой Amazon Augmented AI Runtime .

Представляет ошибку при взаимодействии со службой Auto Scaling.

Представляет ошибку при взаимодействии со службой AWS Auto Scaling Plan .

Представляет ошибку при взаимодействии со службой AWS Backup .

Представляет ошибку при взаимодействии со службой AWS Batch .

Представляет ошибку при взаимодействии со службой Braket .

Представляет ошибку при взаимодействии с сервисом AWS Budgets .

Представляет ошибку при взаимодействии со службой Amazon Chime .

Представляет ошибку при взаимодействии с конфигурацией для наблюдения на стороне клиента.

Представляет ошибку при взаимодействии с сервисом AWS Cloud9 .

Представляет ошибку при взаимодействии со службой Amazon CloudDirectory .

Указывает на ошибку при взаимодействии со службой AWS CloudFormation.

Обозначает ошибку при взаимодействии со службой Amazon CloudFront.

Представляет ошибку при взаимодействии со службой AWS CloudHSM V2 .

Указывает на ошибку при взаимодействии со службой Amazon CloudSearch.

Указывает на ошибку при взаимодействии с доменом Amazon CloudSearch.

Указывает на ошибку при взаимодействии со службой AWS CloudTrail.

Обозначает ошибку при взаимодействии со службой Amazon CloudWatch.

Представляет ошибку при взаимодействии со службой Amazon CloudWatch Events .

Указывает на ошибку при взаимодействии со службой Amazon CloudWatch Logs.

Представляет ошибку при взаимодействии со службой CodeArtifact .

Представляет ошибку при взаимодействии со службой AWS CodeBuild .

Представляет ошибку при взаимодействии со службой AWS CodeCommit .

Представляет ошибку при взаимодействии с AWS CodeDeploy.

Представляет ошибку при взаимодействии со службой Amazon CodeGuru Profiler .

Представляет ошибку при взаимодействии со службой Amazon CodeGuru Reviewer .

Указывает на ошибку при взаимодействии со службой Amazon CodePipeline.

Представляет ошибку при взаимодействии со службой AWS CodeStar .

Представляет ошибку при взаимодействии с сервисом подключений AWS CodeStar .

Представляет ошибку при взаимодействии со службой AWS CodeStar Notifications .

Указывает на ошибку при взаимодействии со службой Amazon Cognito Identity Logs.

Представляет ошибку при взаимодействии со службой Amazon Cognito Identity Provider .

Указывает на ошибку при взаимодействии со службой Amazon Cognito Sync.

Представляет ошибку при взаимодействии со службой Amazon Comprehend .

Представляет ошибку при взаимодействии со службой AWS Comprehend Medical .

Представляет ошибку при взаимодействии со службой AWS Compute Optimizer .

Указывает на ошибку при взаимодействии со службой AWS Config.

Представляет ошибку при взаимодействии со службой Amazon Connect Service .

Представляет ошибку при взаимодействии со службой Amazon Connect Contact Lens .

Представляет ошибку при взаимодействии со службой Amazon Connect Participant Service .

Представляет ошибку при взаимодействии со службой AWS Cost and Usage Report Service .

Представляет ошибку при взаимодействии со службой AWS Cost Explorer Service .

Указывает на ошибку при взаимодействии со службой Amazon Connect Customer Profiles .

Представляет ошибку при взаимодействии со службой AWS Database Migration Service .

Представляет ошибку при взаимодействии со службой AWS Data Exchange .

Указывает на ошибку при взаимодействии со службой AWS Data Pipeline.

Представляет ошибку при взаимодействии со службой AWS DataSync .

Представляет ошибку при взаимодействии со службой Amazon DynamoDB Accelerator (DAX) .

Обозначает ошибку при взаимодействии со службой Amazon Detective .

Указывает на ошибку при взаимодействии со службой Amazon DeviceFarm.

Представляет ошибку при взаимодействии со службой Amazon DevOps Guru .

Указывает на ошибку при взаимодействии со службой AWS Direct Connect.

Исключение службы каталогов AWS

Обозначает ошибку при взаимодействии со службой Amazon Data Lifecycle Manager .

Представляет ошибку при взаимодействии с Amazon DocumentDB с помощью службы совместимости с MongoDB.

Указывает на ошибку при взаимодействии со службой Amazon DynamoDB.

Указывает на ошибку при взаимодействии со службой Amazon DynamoDB Streams.

Представляет ошибку при взаимодействии со службой Amazon Elastic Block Store .

Обозначает ошибку при взаимодействии со службой Amazon Elastic Compute Cloud.

Представляет ошибку при взаимодействии со службой AWS EC2 Instance Connect .

Обозначает ошибку при взаимодействии со службой Amazon EC2 Container Registry .

Указывает на ошибку при взаимодействии с общедоступной службой Amazon Elastic Container Registry Public .

Представляет ошибку при взаимодействии с сервисом Amazon Elastic Container Service для Kubernetes .

Указывает на ошибку при взаимодействии со службой Amazon ElastiCache.

Указывает на ошибку при взаимодействии со службой AWS Elastic Beanstalk.

Представляет ошибку при взаимодействии со службой Amazon Elastic Inference .

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

Представляет ошибку при взаимодействии со службой Elastic Load Balancing .

Обозначает ошибку при взаимодействии со службой Amazon Elasticsearch Service .

Обозначает ошибку при взаимодействии со службой Amazon Elastic Transcoder.

Указывает на ошибку при взаимодействии со службой Amazon Elastic MapReduce.

Представляет ошибку при взаимодействии со службой Amazon EMR Containers .

Представляет ошибку при взаимодействии с конфигурацией для обнаружения конечной точки

Представляет ошибку при взаимодействии со службой Amazon EventBridge .

Представляет исключение AWS, которое выдается при сбое команды.

Интерфейс для добавления и получения событий мониторинга на стороне клиента

Интерфейс для добавления и получения событий мониторинга на стороне клиента

Этот класс представляет исключения, связанные с логикой на стороне клиента. использование шифрования.

Класс CryptoPolyfillException

Представляет исключение, которое было передано через EventStream.

Интерфейс для добавления и получения событий мониторинга на стороне клиента

Интерфейс для добавления и получения событий мониторинга на стороне клиента

Интерфейс для добавления и получения событий мониторинга на стороне клиента

Интерфейс для добавления и получения событий мониторинга на стороне клиента

Интерфейс для добавления и получения событий мониторинга на стороне клиента

Интерфейс для добавления и получения событий мониторинга на стороне клиента

Интерфейс для добавления и получения событий мониторинга на стороне клиента

Представляет ошибку при взаимодействии со службой FinSpace User Environment Management. Служба .

Представляет ошибку при взаимодействии со службой FinSpace Public API .

Представляет ошибку при взаимодействии со службой Amazon Kinesis Firehose .

Представляет ошибку при взаимодействии со службой AWS Fault Injection Simulator .

Представляет ошибку при взаимодействии со службой Firewall Management Service service.

Представляет ошибку при взаимодействии со службой Amazon Forecast Query Service .

Представляет ошибку при взаимодействии со службой Amazon Forecast Service .

Обозначает ошибку при взаимодействии со службой Amazon Fraud Detector .

Представляет ошибку при взаимодействии со службой Amazon FSx .

Представляет ошибку при взаимодействии со службой Amazon GameLift .

Указывает на ошибку при взаимодействии со службой Amazon Glacier.

Представляет ошибку при взаимодействии со службой AWS Global Accelerator .

Представляет ошибку при взаимодействии со службой AWS Glue .

Представляет ошибку при взаимодействии со службой AWS Glue DataBrew .

Представляет ошибку при взаимодействии со службой AWS Greengrass .

Представляет ошибку при взаимодействии со службой AWS IoT Greengrass V2 .

Представляет ошибку при взаимодействии со службой AWS Ground Station .

Представляет ошибку при взаимодействии со службой Amazon GuardDuty .

Представляет ошибку при взаимодействии со службой API работоспособности AWS и службой уведомлений .

Представляет ошибку при взаимодействии со службой Amazon HealthLake .

Представляет ошибку при взаимодействии со службой Amazon Honeycode .

Указывает на ошибку при взаимодействии со службой AWS Identity and Access Management.

Представляет ошибку при взаимодействии со службой AWS SSO Identity Store .

Представляет ошибку при взаимодействии со службой EC2 Image Builder .

Представляет ошибку при взаимодействии со службой AWS Import / Export .

Представляет ошибку при взаимодействии со службой Amazon Inspector .

Представляет ошибку при взаимодействии со службой AWS IoT 1-Click Devices Service .

Представляет ошибку при взаимодействии со службой AWS IoT 1-Click Projects Service .

Представляет ошибку при взаимодействии со службой AWS IoT .

Представляет ошибку при взаимодействии со службой AWS IoT Analytics .

Представляет ошибку при взаимодействии со службой AWS IoT Data Plane .

Представляет ошибку при взаимодействии со службой AWS IoT Core Device Advisor .

Представляет ошибку при взаимодействии со службой AWS IoT Events .

Представляет ошибку при взаимодействии со службой AWS IoT Events Data .

Представляет ошибку при взаимодействии со службой AWS IoT Fleet Hub .

Представляет ошибку при взаимодействии со службой AWS IoT Jobs Data Plane .

Представляет ошибку при взаимодействии со службой AWS IoT Secure Tunneling .

Представляет ошибку при взаимодействии со службой AWS IoT SiteWise .

Представляет ошибку при взаимодействии со службой AWS IoT Things Graph .

Представляет ошибку при взаимодействии со службой AWS IoT Wireless .

Представляет ошибку при взаимодействии со службой Amazon Interactive Video Service .

Представляет ошибку при взаимодействии со службой управляемой потоковой передачи для службы Kafka .

Представляет ошибку при взаимодействии со службой AWSKendraFrontendService .

Указывает на ошибку при взаимодействии со службой Amazon Kinesis.

Представляет ошибку при взаимодействии со службой Amazon Kinesis Analytics .

Указывает на ошибку при взаимодействии со службой Amazon Kinesis Analytics .

Представляет ошибку при взаимодействии со службой Amazon Kinesis Video Streams .

Обозначает ошибку при взаимодействии со службой Amazon Kinesis Video Streams Archived Media .

Представляет ошибку при взаимодействии со службой Amazon Kinesis Video Streams Media .

Представляет ошибку при взаимодействии со службой Amazon Kinesis Video Signaling Channels .

Указывает на ошибку при взаимодействии со службой управления ключами AWS.

Представляет ошибку при взаимодействии со службой AWS Lake Formation .

Представляет ошибку при взаимодействии с AWS Lambda

Представляет ошибку при взаимодействии со службой Amazon Lex Model Building Service .

Представляет ошибку при взаимодействии со службой Amazon Lex Model Building V2 .

Представляет ошибку при взаимодействии со службой Amazon Lex Runtime Service .

Представляет ошибку при взаимодействии со службой Amazon Lex Runtime V2 .

Представляет ошибку при взаимодействии со службой AWS License Manager .

Представляет ошибку при взаимодействии со службой Amazon Lightsail .

Представляет ошибку при взаимодействии со службой Amazon Location Service .

Представляет ошибку при взаимодействии со службой Amazon Lookout for Equipment .

Представляет ошибку при взаимодействии со службой Amazon Lookout for Vision .

Представляет ошибку при взаимодействии со службой Amazon Lookout for Metrics .

Исключение для машинного обучения Amazon.

Представляет ошибку при взаимодействии со службой Amazon Macie 2 .

Представляет ошибку при взаимодействии со службой Amazon Macie .

Представляет ошибку при взаимодействии со службой Amazon Managed Blockchain .

Представляет ошибку при взаимодействии со службой AWS Marketplace Catalog Service .

Представляет ошибку при взаимодействии со службой AWS Marketplace Commerce Analytics .

Представляет ошибку при взаимодействии со службой AWS Marketplace Entitlement Service .

Представляет ошибку при взаимодействии со службой AWSMarketplace Metering .

Представляет ошибку при взаимодействии со службой AWS MediaConnect .

Представляет ошибку при взаимодействии со службой AWS Elemental MediaConvert .

Представляет ошибку при взаимодействии со службой AWS Elemental MediaLive .

Представляет ошибку при взаимодействии со службой AWS Elemental MediaPackage .

Представляет ошибку при взаимодействии со службой AWS Elemental MediaPackage VOD .

Представляет ошибку при взаимодействии со службой AWS Elemental MediaStore .

Представляет ошибку при взаимодействии со службой AWS Elemental MediaStore Data Plane .

Представляет ошибку при взаимодействии со службой AWS MediaTailor .

Представляет ошибку при взаимодействии со службой Application Migration Service .

Представляет ошибку при взаимодействии со службой AWS Migration Hub .

Представляет ошибку при взаимодействии со службой AWS Migration Hub Config .

Представляет ошибку при взаимодействии с сервисом AWS Mobile .

Представляет ошибку при взаимодействии со службой AmazonMQ .

Представляет ошибку при взаимодействии со службой Amazon Mechanical Turk Requester Service .

Представляет ошибку при взаимодействии со службой AmazonMWAA .

Представляет ошибку при взаимодействии со службой Amazon Neptune .

Обозначает ошибку при взаимодействии со службой AWS Network Firewall .

Представляет ошибку при взаимодействии со службой AWS Network Manager .

Представляет ошибку при взаимодействии со службой AmazonNimbleStudio .

Указывает на ошибку при взаимодействии со службой AWS OpsWorks.

Представляет ошибку при взаимодействии со службой AWS OpsWorks для Chef Automate .

Представляет ошибку при взаимодействии с сервисом AWS Organizations .

Представляет ошибку при взаимодействии со службой AWS Outposts .

Представляет ошибку при взаимодействии со службой Amazon Personalize .

Представляет ошибку при взаимодействии со службой Amazon Personalize Events .

Указывает на ошибку при взаимодействии со службой Amazon Personalize Runtime .

Представляет ошибку при взаимодействии со службой AWS Performance Insights .

Представляет ошибку при взаимодействии со службой Amazon Pinpoint .

Указывает на ошибку при взаимодействии со службой Amazon Pinpoint Email Service .

Обозначает ошибку при взаимодействии со службой Amazon Pinpoint SMS and Voice Service .

Представляет ошибку при взаимодействии со службой Amazon Polly .

Обозначает ошибку при взаимодействии со службой AWS Price List Service .

Представляет ошибку при взаимодействии со службой Amazon Prometheus Service .

Представляет ошибку при взаимодействии со службой AWS Proton .

Представляет ошибку при взаимодействии со службой Amazon QLDB .

Представляет ошибку при взаимодействии со службой Amazon QLDB Session .

Представляет ошибку при взаимодействии со службой Amazon QuickSight .

Представляет ошибку при взаимодействии со службой AWS Resource Access Manager .

Обозначает ошибку при взаимодействии со службой реляционной базы данных Amazon.

Представляет ошибку при взаимодействии со службой AWS RDS DataService .

Обозначает ошибку при взаимодействии со службой Amazon Redshift.

Представляет ошибку при взаимодействии со службой Redshift Data API Service .

Указывает на ошибку при взаимодействии со службой Amazon Rekognition .

Представляет ошибку при взаимодействии с сервисом AWS Resource Groups .

Представляет ошибку при взаимодействии со службой AWS Resource Groups Tagging API .

Представляет ошибку при взаимодействии с конфигурацией повтора

Представляет ошибку при взаимодействии со службой AWS RoboMaker .

Указывает на ошибку при взаимодействии со службой Amazon Route 53.

Указывает на ошибку при взаимодействии со службой доменов Amazon Route 53.

Представляет ошибку при взаимодействии со службой Amazon Route 53 Resolver .

Исключение возникает, когда возникают ошибки при удалении объектов с помощью Объект S3 \ BatchDelete.

Обозначает ошибку при взаимодействии с Amazon Simple Storage Service.

Обозначает ошибку при взаимодействии с Amazon Simple Storage Service.

Интерфейс для добавления и получения событий мониторинга на стороне клиента

Представляет ошибку при взаимодействии с конфигурацией региональных конечных точек sts

Представляет ошибку при взаимодействии с конфигурацией для UseArnRegion S3

Представляет ошибку при взаимодействии со службой AWS S3 Control .

Представляет ошибку при взаимодействии с Amazon S3 на службе Outposts .

Представляет ошибку при взаимодействии со службой Amazon SageMaker Service .

Обозначает ошибку при взаимодействии со службой Amazon Sagemaker Edge Manager .

Представляет ошибку при взаимодействии со службой Amazon SageMaker Feature Store Runtime .

Представляет ошибку при взаимодействии со службой Amazon SageMaker Runtime .

Представляет ошибку при взаимодействии со службой AWS Savings Plan .

Представляет ошибку при взаимодействии со службой Schemas .

Представляет ошибку при взаимодействии со службой AWS Secrets Manager .

Представляет ошибку при взаимодействии со службой AWS SecurityHub .

Представляет ошибку при взаимодействии со службой AWSServerlessApplicationRepository .

Представляет ошибку при взаимодействии с сервисом AWS Service Catalog .

Представляет ошибку при взаимодействии со службой Amazon Route 53 Auto Naming .

Представляет ошибку при взаимодействии со службой Service Quotas .

Указывает на ошибку при взаимодействии с Amazon Simple Email Service.

Представляет ошибку при взаимодействии со службой Amazon Simple Email Service .

Представляет ошибку при взаимодействии со службой AWS Step Functions .

Представляет ошибку при взаимодействии со службой AWS Shield .

Представляет ошибку при взаимодействии со службой AWS Signer .

Представляет ошибку при взаимодействии со службой AWS Server Migration Service .

Представляет ошибку при взаимодействии со службой Amazon Import / Export Snowball .

Исключение времени выполнения, выданное валидатором сообщений SNS.

Обозначает ошибку при взаимодействии с Amazon Simple Notification Service.

Обозначает ошибку при взаимодействии со службой Amazon Simple Queue Service.

Исключение для Amazon EC2 Simple Systems Manager.

Указывает на ошибку при взаимодействии со службой AWS Systems Manager Incident Manager Контакты .

Обозначает ошибку при взаимодействии со службой AWS Systems Manager Incident Manager .

Представляет ошибку при взаимодействии со службой AWS Single Sign-On .

Представляет ошибку при взаимодействии со службой AWS Single Sign-On Admin .

Представляет ошибку при взаимодействии со службой AWS SSO OIDC .

Указывает на ошибку при взаимодействии со службой AWS Storage Gateway.

Исключение AWS Security Token Service.

Представляет ошибку при взаимодействии с конфигурацией региональных конечных точек sts

Исключение службы поддержки AWS.

Указывает на ошибку при взаимодействии с Amazon Simple Workflow Service.

Представляет ошибку при взаимодействии со службой Synthetics .

Представляет ошибку при взаимодействии со службой Amazon Textract .

Представляет ошибку при взаимодействии со службой Amazon Timestream Query .

Представляет ошибку при взаимодействии со службой Amazon Timestream Write .

Обозначает ошибку при взаимодействии со службой Amazon Transcribe Service .

Представляет ошибку при взаимодействии с сервисом AWS Transfer для SFTP .

Обозначает ошибку при взаимодействии со службой Amazon Translate .

Представляет ошибку при взаимодействии со службой AWS WAF .

Представляет ошибку при взаимодействии со службой AWS WAF Regional .

Представляет ошибку при взаимодействии со службой AWS WAFV2 .

Представляет ошибку при взаимодействии со службой AWS Well-Architected Tool .

Представляет ошибку при взаимодействии со службой Amazon WorkDocs .

Обозначает ошибку при взаимодействии со службой Amazon WorkLink .

Представляет ошибку при взаимодействии со службой Amazon WorkMail .

Представляет ошибку при взаимодействии со службой Amazon WorkMail Message Flow .

Указывает на ошибку при взаимодействии с Amazon WorkSpaces.

Представляет ошибку при взаимодействии со службой AWS X-Ray .

.