2013-03-17 2 views
0

Я пытаюсь отобразить URL-адрес, который создается через API Netflix. URL-адрес хранится в переменной $ movieid и когда «echo $ movieid;» Напечатано, это работает. Мне нужно получить значение из PHP и в JavaScript, который предоставляет Netflix, и вот где я получаю эту проблему.Очень странная ошибка PHP-эха

Предположим, у меня есть имяID = 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/", 

Все остальное работает замечательно, за исключением того, что. Я пробовал эхо, печатать, разные имена переменных и ничего не работает.

Спасибо за любую помощь.

+0

В дополнение, я попробовал «title_id»: «http://api.netflix.com/catalog/movie/», И это все еще не удалось добавить числа. – Ash

+0

Почему ваш источник скрипта находится в '[http]' скобках? Или есть что-то, чего я не знаю? Вы пробовали его без скобок вокруг 'http'? –

+0

У меня не могло быть более двух ссылок в файле, и это, казалось, прекратило жалобу. Извините, что не упоминал об этом. – Ash

ответ

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 parser.

Neflix API для PHP

Если это еще не решена, PHP API для Netflix из source в качестве образца PHP.

+0

var_dump возвращает символ пробела echo возвращает URL-адрес – Ash

+0

'var_dump ($ movie_id)' возвращает 'NULL/(ничего)', поэтому вы не возвращаете результат. –

+0

Вывод из «title_id»: \ " \": "title_id": \ "http: //api.netflix.com/catalog/movie/ \", – Ash

Смежные вопросы