При удаленном постинге через XML-RPC наблюдается следующее явление…
Отсылаю:
<a href="http://yandex.ru">Yandex</a><br/><img src="http://imgl.yandex.net/i/www/logo1.png"/>
А приходит (доступно при HTML-редактировании записи):
<a href="http://yandex.ru">Yandex</a><br><img>
Подозреваю, что при постинге EMBED-объектов будет что-то похожее…
Подскажите, пожалуйста, в чем может быть проблема? Может кто-нибудь уже сталкивался с подобным?
Для постинга использую следующую функцию:
function send_post($blog, $login,$pass,$title,$description,$tags,$allow_comment = 0,$ping = 0,$publish=1) {
$xmltags='';
$tags = explode(',',$tags);
foreach ($tags as $tag) {
$xmltags.="<value>$tag</value>";
}
$query = '<?xml version="1.0"?>
<methodCall>
<methodName>metaWeblog.newPost</methodName>
<params>
<param>
<value><int>0</int></value>
</param>
<param>
<value><string>'.$login.'</string></value>
</param>
<param>
<value><string>'.$pass.'</string></value>
</param>
<param>
<value><struct>
<member>
<name>title</name>
<value><string>'.$title.'</string></value>
</member>
<member>
<name>description</name>
<value><string>'.$description.'</string></value>
</member>
<member>
<name>mt_keywords</name>
<value>
<array>
<data>'.
$xmltags
.'</data>
</array>
</value>
</member>
<member>
<name>mt_allow_comments</name>
<value><int>'.$allow_comment.'</int></value>
</member>
<member>
<name>mt_allow_pings</name>
<value><int>'.$ping.'</int></value>
</member>
</struct></value>
</param>
<param>
<value><string>'.$publish.'</string></value>
</param>
</params>
</methodCall>';
$headers = "POST /xmlrpc.php HTTP/1.0\r\n".
"Host:$blog \r\n".
"Connection: Close\r\n".
''.
"Content-Type: text/xml\r\n".
"Content-Length:".strlen($query)."\r\n".
"\r\n";
$user_agent=NULL;
$conn = fsockopen("$blog", 80);
if(!$conn) {
return "error while open socket";
}
else {
fputs($conn, "$headers");
fputs($conn, $query);
$response = "";
while(!feof($conn))
{
$response .= fgets($conn, 1024);
}
fclose($conn);
$response = substr($response, strpos($response, "\r\n\r\n")+4);
$dom = new DOMDocument();
$dom ->loadXML($response);
$tags= $dom->getElementsByTagName('value');
if ($tags->length ==1) {
return "OK ";
}
else {
return "ERROR ";
}
}
}
