Drupalが提供するいくつかのウェブサイトがあります。すべてのウェブサイトに乗算モジュールサーバーにpingを送信します。
コマンドラインでpingを送信する方法はありますか?
ping専用サーバーを設定できたらと思います。
答え1
Calebが指摘したように、cURLは多くの場合、コマンドラインHTTP用に選択された武器です。 Calebが再び指摘したように、トリッキーな部分は、要求を1つに集めることです。具体的には、サーバーが正しい形式の入力を見つけることができるXML-RPCの場合はさらにそうです。
しかし、もしあなたがMultipinのソースコードを見る、これは単純なHTTPリクエストではないことがわかります(それに置き換えられると思います)。これは、ターゲットサービスによって有効になっているサービスによって変わります。そしてweblogUpdatesの場合、送信されるコンテンツの特別なケースです。
// Ping! Check service method
if (!empty($pingservice->method)) {
if ($pingservice->method == 'weblogUpdates.ping') {
$result = xmlrpc($pingservice->url, $pingservice->method, $name, $base_url);
}
else {
$result = xmlrpc($pingservice->url, $pingservice->method, $name, $base_url, $rss_url);
}
}
else {
$pingurl = strtr($pingservice->url, array(
'%name' => urlencode($name),
'%url' => urlencode($base_url .'/'),
'%rss' => urlencode($rss_url),
));
$result = drupal_http_request($pingurl);
分類法などに基づいてどのRSS URLを送信するかを決定する上記の行は賢明です。
だから私は2つのアプローチのうちの1つをお勧めします。
何かを続行するには、
drupal_http_request
次のように送信してシミュレーションします。$ curl <target-pingservice-url> -d 'name=<your site name>' -d url=<your-url> -d rss=/rss.xml
回避策:MultiPingのすべての動作が必要な場合は、関数を抽出して
_multiping_doping
PHPを介してコマンドラインから直接実行できます。必要な主な機能はDrupalのxmlrpcです。 http://api.drupal.org/api/drupal/includes%21common.inc/function/xmlrpc/7
頑張ってください!