/** * 本文中のリンク先にTrackBack Pingを送る * * return array('url' => 'error_mes') url:エラーの発生した送信先URL error_mes:エラー内容 */ private function sendtrackback() { require_once 'Services/Trackback.php'; $data['title'] = $this->subject; $data['excerpt'] = mb_strlen($this->text) >= 256 ? mb_substr($this->text, 0, 252) . '...' : $this->text; $data['url'] = gettinyURL($this->pagename); $data['blog_name'] = SITENAME . ' - ' . $this->blogname; $tb = Services_Trackback::create(array('id' => 'dummy'), array('timeout' => 4, 'fetchlines' => 999999)); if (PEAR::isError($tb)) { throw new PluginException('TrackBack送信時にエラーが発生しました(' . $tb->getMessage() . ')。', $this); } $ret = array(); $count = preg_match_all('/https?:\\/\\/[-a-zA-Z0-9_:@&?=+,.!\\/~*%$\';#]+/u', $this->text, $m); if ($count) { foreach ($m[0] as $url) { $tb->set('url', $url); $result = $tb->autodiscover(); if (!PEAR::isError($result)) { foreach ($data as $key => $val) { $tb->set($key, $val); } $r = $tb->send(); if (PEAR::isError($r)) { $ret[$url] = $r->getMessage(); } } else { $ret[$url] = $result->getMessage(); } } } return $ret; }