2

我正在尝试在 Safari 扩展中运行 PHP 机器人功能。

这是我尝试整理的 HTML 代码,但它是 PHP、cURL 和 HTML 的混乱,我真的不知道我在做什么。

在从http://www.barattalo.it/2010/08/09/send-push-notification-to-iphone-with-php-and-pushme-to/获得此代码之前,我从未尝试过使用 cURL ,并且当我尝试启动 $ch. 这显然违背了代码的全部目的,因为我需要它来运行 cURL 命令。

有什么技巧可以让它工作吗?

 function performCommand(event)
 {    if (event.command === "sendLink") { 
pushMeTo($u,$t,$s);      }


 function pushMeTo($widgeturl, $text, $signature)
 { $agent = "Mozilla/5.0 (windows; U; Windows NT 6.0; en-US; rv:1.9.0.12) Gecko/2009070611 Firefox/3.0.12";
  $ch = curl_init();
   curl_setopt($ch, CURLOPT_URL, $widgeturl);
   curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
   curl_setopt($ch, CURLOPT_USERAGENT, $agent);
  $page = curl_exec($ch);
   preg_match("/form action=\"(.*?)\"/", $page, $form_action);
   preg_match("/textarea name=\"(.*?)\"/", $page, $message_field);
   preg_match("/input type=\"text\" name=\"(.*?)\"/", $page, $signature_field);

  $ch = curl_init();

  $strpost = $message_field[1].'=' . urlencode($text) . '&'.$signature_field[1].'=' . urlencode($signature);
   curl_setopt($ch, CURLOPT_POSTFIELDS, $strpost );
   curl_setopt($ch, CURLOPT_URL, $form_action[1]);
   curl_setopt($ch, CURLOPT_POST, 1);
   curl_setopt($ch, CURLOPT_HEADER, 0);
   curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
   curl_setopt($ch, CURLOPT_USERAGENT, $agent);    
  $page = curl_exec($ch);
 }
4

1 回答 1

1

你将无法按照你正在做的方式做你想做的事。在他的评论中,zneak 是绝对正确的。您的扩展在客户端运行,而 PHP 运行在服务器端。您的 Javascript 不知道如何处理您的 PHP 代码。

作为替代方案,您的扩展可以向可以运行 PHP 代码的 URL 发出 Ajax 请求。我在我必须拨打服务电话的其中一个分机中执行此操作。效果很好。

于 2010-08-14T11:12:20.313 回答