非常奇怪的PHP回声错误

时间:2013-03-17 00:47:26

标签: php echo netflix

我正在尝试回显通过Netflix API生成的网址。 URL保存在变量$ movieid中,当'echo $ movieid;'时键入它是有效的。我需要从PHP中获取价值并进入Netflix提供的JavaScript,这就是我遇到问题的地方。

假设我有titleID = 7474747。当我输入以下代码时:

$movieid = "http://api.netflix.com/catalog/movie/".$titleID;
echo $movieid;

我得到以下输出:

[http]://api.netflix.com/catalog/movie/7474747

但使用以下代码时:

<div id="myMovieLocation">
  <?php echo "<img src=\"$img\" />"; ?>
  <script src="[http]://jsapi.netflix.com/us/api/js/api.js">
  {
   "title_id" : "<?php print $movieid; ?>",
   "button_type" : ["PLAY_BUTTON", "ADD_BUTTON"],
   "show_logo" : "true",
   "x" : "40",
   "y" : "20",
   "dom_id" : "myMovieLocation",
   "application_id" : "<?php echo $apiKey; ?>"
   }
   </script>

我没有获得$ movieid的相同输出。快速查看源代码始终显示原始URL,不添加任何数字,如下所示:

"title_id" : "[http]://api.netflix.com/catalog/movie/",

除此之外,其他一切都很棒。我试过echo,print,不同的变量名,似乎没什么用。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

只需使用自己的代码str_replace("[http]", "http://", $movie_id);进行更改。

如果你放var_dump($movie_id);,你会得到什么?分享结果....

试试这个:

"title_id" : \"<?php print $movieid; ?>\",

如果您收到NULL或没有,那么在变量$movie_id上返回结果会出现问题?

尝试转换为字符串,我认为您收到INT因此无法解析示例:

echo (string) $movie_id;

或使用strval()确保整数转换为字符串:

echo strval($movie_id);

由于错误:Output from "title_id" : \"<?php print $movieid; ?>\" is: "title_id" : \"api.netflix.com/catalog/movie\",

加入PHP代码"

"title_id" : <?php print 'http://"'.$movieid.'"/'.$title_id; ?>,

或者以另一种方式,使用PHP json_encode解析:

<div id="myMovieLocation">
  <?php echo "<img src=\"$img\" />"; ?>
  <script src="[http]://jsapi.netflix.com/us/api/js/api.js">
  {
    <?php

    $movie_id_result = (string)$movieid;

    $a = array
    ("title_id" => "http://api.netflix.com/catalog/movie/".$movie_id_result,
     "button_type" => "[\"PLAY_BUTTON\", \"ADD_BUTTON\"]",
     "show_logo" => "true",
     "x" => "40",
     "y" => "20",
     "dom_id" => "myMovieLocation",
     "application_id" => $apiKey
    );

    echo json_encode($a, JSON_UNESCAPED_SLASHES);
    ?>
  }
  </script>

返回PHP结果时要注意:

titleID = 7474747其中7474747可以是整数(INT)。转换为JSON时,请确保使用strval()字符串或在变量前添加简单(string)。结果整数可能会混淆json解析器。

适用于PHP的Neflix API

如果尚未解决,请使用来自source的netflix的PHP API作为示例PHP。