2

我正在尝试创建一个简单的 Facebook 页面选项卡,用于从我的数据库中检索当前信息。我很快了解到跨站点脚本不起作用,因为实际网站上的工作演示效果很好,但在 heroku 上没有产生任何结果。

这是我现在在heroku中的内容。如何让 curl 在返回结果之前处理页面?

<?php
$curl = curl_init();
curl_setopt ($curl, CURLOPT_URL, 'http://www.url.com/output.html');

$result = curl_exec ($curl);
curl_close ($curl);

print $result;
?>

这是创建位于我的网络服务器上的格式化 XML 的页面:

<?php
require_once('connectDB.php');
$xslt_file = "xmlstyle.xsl";

mysql_select_db($database_DB, $db);

$query = sprintf("SELECT * from db");
$result = mysql_query($query, $db) or die(mysql_error());

header("Content-type: text/xml");
$XML = "<?xml version=\"1.0\"?>\n";
if ($xslt_file) $XML .= "<?xml-stylesheet href=\"$xslt_file\" type=\"text/xsl\" ?>";

// root node
$XML .= "<result>\n";
// rows
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {    
  $XML .= "\t<row>\n"; 
  $i = 0;
  // cells
  foreach ($row as $cell) {
    // Escaping illegal characters - not tested actually ;)
    $cell = str_replace("&", "&amp;", $cell);
    $cell = str_replace("<", "&lt;", $cell);
    $cell = str_replace(">", "&gt;", $cell);
    $cell = str_replace("\"", "&quot;", $cell);
    $col_name = mysql_field_name($result,$i);
    // creates the "<tag>contents</tag>" representing the column
    $XML .= "\t\t<" . $col_name . ">" . $cell . "</" . $col_name . ">\n";
    $i++;
  }
  $XML .= "\t</row>\n"; 
 }
$XML .= "</result>\n";
// output the whole XML string
echo $XML;
?>

我确信我已经把整个事情复杂化了,但尝试让它发挥作用还是有点令人愉快的。如果有更简单的方法来获得相同的结果,我会全力以赴。提前致谢。

4

1 回答 1

0

使用 RETURNTRANSFER 选项:

//Set curl to return the page instead of sending it to the browser
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

参考

于 2013-03-06T05:41:28.987 回答