ошибка parser curl + xmlrpc
-
► два файла один curl другой с rpc клиентом как их связать чтобы можно было бы отправить wordpress инфу на добавление поста
вот код curl ниже вывод егоrequire_once('wp-includes/newsmusic.php'); function get_web_page( $url ) { $uagent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)"; $ch = curl_init( $url ); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // возвращает веб-страницу curl_setopt($ch, CURLOPT_HEADER, 0); // не возвращает заголовки curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); // переходит по редиректам curl_setopt($ch, CURLOPT_ENCODING, ""); // обрабатывает все кодировки curl_setopt($ch, CURLOPT_USERAGENT, $uagent); // useragent curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 120); // таймаут соединения curl_setopt($ch, CURLOPT_TIMEOUT, 120); // таймаут ответа curl_setopt($ch, CURLOPT_MAXREDIRS, 10); // останавливаться после 10-ого редиректа $content = curl_exec( $ch ); $err = curl_errno( $ch ); $errmsg = curl_error( $ch ); $header = curl_getinfo( $ch ); curl_close( $ch ); $header['errno'] = $err; $header['errmsg'] = $errmsg; $header['content'] = $content; return $header; } // ключевое слово $keyword = 'finance'; // избавляемся от пробелов, если они есть $keyword = strtr($keyword, ' ', '+'); $url = 'http://www.newsmusic.ru/index_2.htm'; $result = get_web_page( $url ); $err = 0; if ( $result['errno'] != 0 ) { //... ошибка: неправильный url, таймаут, зацикливание ... обработать по желанию $err = 1; } if ( $result['http_code'] != 200 ) { //... ошибка: нет страницы, нет прав ... обработать по желанию $err = 1; } $page = newsmusic($result['content']); var_dump ($page);
вот результат полученный курлом,тут у меня все что надо но как их отправить дальше
array(5) { [0]=> string(106) «Арефьева сняла клип на пресню «Есть ли тебе, что сказать» » [1]=> string(12) «01. 11. 2012» [2]=> string(174) «» [3]=> string(220) «Ольга Арефьева и «Ковчег» выпустили новый клип «Есть ли тебе, что сказать» на песню с только что вышедшего альбома «Хвоин».» [4]=> string(995) » Ольга Арефьева и «Ковчег» выпустили новый клип «Есть ли тебе, что сказать» на песню с только что вышедшего альбома «Хвоин». Клип затрагивает болезненные индивидуальные и планетарные проблемы, при этом с очень личной точки зрения. Свободный выбор каждого на сложных моральных развилках никто не оспаривает, но иногда и из нарисованных глаз текут слезы. Случайно или неслучайно, клип вышел 1 ноября, в Международный день вегана. «Есть ли тебе, что сказать коровам, ведомым на бойню?» Арефьева, спевшая «На хрена нам война», повзрослела. » }
функция newsmusic() самопис ищет в контенте нужный материал и вырезает из него текст и прочее
вот код клиента которому я присваиваю значения полученные из парсинга newsmusic, но у меня выходит ошибка говорящая что надо использовать метод POST, тогда получается мне надо curl скачивать страницу, поясните что потом делать с данными и как их посылать методом POST
$wp = new xmlrpc_client(‘/xmlrpc.php’,’galaxy.ru’,80);
//кодировка клиента
$wp->request_charset_encoding = ‘UTF-8’;
//чтоб возвращал в виде php-переменных
$wp->return_type = ‘phpvals’;$struct = array(); for($i=2;$i<6;$i++){ $newsmusic=newsmusic("http://www.newsmusic.ru/index_$i.htm"); foreach($newsmusic as $value){ $struct['post_type'] = new xmlrpcval('post', 'string'); $struct['title'] = new xmlrpcval($newsmusic[0], 'string'); $struct['description'] = new xmlrpcval($newsmusic[4], 'string'); $struct['mt_excerpt'] = new xmlrpcval($newsmusic[3], 'string'); $struct['mt_keywords'] = new xmlrpcval(array( new xmlrpcval("Знаменитости в новости $newsmusic[0]", 'string'), new xmlrpcval("Новости шоу-бизнеса $newsmusic[3]", 'string')), 'array'); $struct['mt_allow_comments'] = new xmlrpcval(0, 'int'); $struct['mt_allow_pings'] = new xmlrpcval(1, 'int'); $struct['dateCreated'] = new xmlrpcval($newsmusic[1], 'dateTime.iso8601'); $struct['post_status'] = new xmlrpcval('publish', 'string'); $struct['categories'] = new xmlrpcval(array(new xmlrpcval('Uncategorized', 'string')), 'array'); $params = array( new xmlrpcval(0, 'int'), new xmlrpcval($u_name, 'string'), new xmlrpcval($u_pass, 'string'), new xmlrpcval($struct, 'struct'),new xmlrpcval(true, 'boolean')); var_dump($params); $r = $wp->send(new xmlrpcmsg('metaWeblog.newPost', $params)); if ($r->faultCode()) { die('Ошибка постинга:' . $r->faultString()); } $p = $r->value(); echo 'Запостили пост успешно. Его идентификатор '. 'имеет номер ' . $p .'. Прочитать статью можно'. ' <a href="http://galaxymusic.ru/?p=' . $p . '">здесь</a> '; } }
Добавлено через 28 минут
вот ошибка сервера XML-RPC server accepts POST requests only
- Тема «ошибка parser curl + xmlrpc» закрыта для новых ответов.