Готовые функции PHP для апи Миратекст
Иногда приходится работать мне и с текстами. Точнее, заказчики дают ТЗ, в котором необходимо научить систему взаимодействовать с некоторым сервисами, работающими с текстами. Что-то я сам уже запутался. В общем, в этой заметке я покажу функции на PHP, с помощью которых можно получать данные по api с одного из популярных онлайн сервисов по работе с текстами – Миратекст.
Я не буду переписывать апи миратекста, поэтому, вполне возможно, что вам придется немного переделать функции, адаптировать к своим потребностям. Добавить или изменить некоторые передаваемые параметры, например.
Отправка текста на анализ в Миратекст
function send_text_mira($text){ global $api_key_mira; $body = [ 'api_key' => $api_key_mira, 'content' => [$text], 'options' => ['paid_type' => 'paid'], 'check_type' => 'content' ]; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'https://miratext.ru/api2/call/article/seoAnalizText'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($body)); $rawResponse = curl_exec($ch); if (curl_errno($ch)) { throw new \Exception('Ошибка curl: ' . curl_error($ch)); } curl_close($ch); $response = \json_decode($rawResponse, true); return $response; }Здесь сразу жестко вшиты параметры: отправляем на платную проверку и тип текст, а не ссылка. В ответе нам главное получить уникальный хэш. Достать его можно например, так
$response = send_text_mira($check_text); $mira_hash = $response['hash'];Получение результата анализа текста от Миратекст
function get_check_mira($mira_hash){ global $api_key_mira; $body = [ 'userkey' => $api_key_mira, 'hash' =>$mira_hash ]; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'https://miratext.ru/api2/call/article/seoAnalizText'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($body)); $rawResponse = curl_exec($ch); if (curl_errno($ch)) { throw new \Exception('Ошибка curl: ' . curl_error($ch)); } curl_close($ch); $response = \json_decode($rawResponse, true); return $response; }С полученными результатами можно работать, если статус ответа assepted:
$response = get_check_mira($singl['mira_hash']); if ($response["status"] == "accepted"){ ///работаем дальше }Выбираем все слова:
$repeatWordsAll = $response["data"]["repeatWordsAll"]; if ($repeatWordsAll){ $mira = build_mira_html_origin($repeatWordsAll); }И формируем таблицу, сколько повторений
function build_mira_html_origin($repeatWordsAll){ $table = "<table><thead><tr><th>Слово</th><th>Слова</th><th>Вхождений</th></tr></thead><tbody>"; foreach ($repeatWordsAll as $key){ $tr = "<tr>"; $tr .= "<td>".$key["word"]."</td><td>"; $chet = 0; foreach ($key['wordsAll'] as $sub_key){ $chet++; if ($chet > 1){ $tr .= ", "; } $tr .= $sub_key; } $tr .= "</td>"; $tr .= "<td>".$key['words_count'][0]."</td></tr>"; $table .= $tr; } $table .= "</tbody></table>"; return $table; }У вас есть вопросы по сплаву работы с текстами и программированием? Пишите, проконсультирую. Не бесплатно, но недорого.
Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.
Читайте также:
Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.