将PHP变量传递给javascript src

时间:2012-09-06 08:35:45

标签: php javascript variables

好的,所以我有一个php变量存储:

http://gdata.youtube.com/feeds/api/videos/gzDS-Kfd5XQ?v=2&alt=json-in-script&callback=youtubeFeedCallback

这很好,我想做以下事情:

<script type="text/javascript" src="<?php echo $string; ?>"></script>

但它似乎没有起作用

感谢您的帮助

编辑: 这是我的代码,尝试了以下所有3个答案,但没有奏效: http://pastebin.com/xYKW8TTd

6 个答案:

答案 0 :(得分:2)

这似乎按预期工作:

<?php

    $string="http://gdata.youtube.com/feeds/api/videos/gzDS-Kfd5XQ?v=2&alt=json-in-script&callback=youtubeFeedCallback";

?>

<script type="text/javascript" src="<?php echo $string; ?>"></script>

输出:

<script type="text/javascript" src="http://gdata.youtube.com/feeds/api/videos/gzDS-Kfd5XQ?v=2&alt=json-in-script&callback=youtubeFeedCallback"></script>

编辑:在pastebin的源代码中,您似乎有:

$string = "http://gdata.youtube.com/feeds/api/videos/" . $id ."?v=2&amp;alt=json-in-script&amp;callback=youtubeFeedCallback";

&amp;的地方包含&,这会阻止链接正常工作。这是签名做了什么,或者是原始代码吗?

您无法将HTML代码发送到网址窗口,并希望它的工作方式与在HTML网页中的工作方式相同。

以下代码(仅编辑$id,因为我没有在GET和修改后的&符号中添加任何内容:

<html>
<head>
<?php
    //$id = $_GET['id'];
    $id=0;
    $string = "http://gdata.youtube.com/feeds/api/videos/" . $id ."?v=2&alt=json-in-script&callback=youtubeFeedCallback";
?>


<title></title>
</head>
<body>
<?php echo $string; ?><br>
<script type="text/javascript" src="<?php echo $string; ?>"></script>

输出:

<title></title>
</head>
<body>
http://gdata.youtube.com/feeds/api/videos/0?v=2&alt=json-in-script&callback=youtubeFeedCallback<br>
<script type="text/javascript" src="http://gdata.youtube.com/feeds/api/videos/0?v=2&alt=json-in-script&callback=youtubeFeedCallback"></script>

答案 1 :(得分:0)

试试这个: -

<?php
$str = 'http://gdata.youtube.com/feeds/api/videos/gzDS-Kfd5XQ?v=2&alt=json-in-script&callback=youtubeFeedCallback';
?>
<script type="text/javascript" src="<?php echo $str; ?>"></script>

答案 2 :(得分:0)

<?php
$string = 'http://gdata.youtube.com/feeds/api/videos/gzDS-Kfd5XQ?v=2&alt=json-in-script&callback=youtubeFeedCallback';
?>

<script type="text/javascript" src="<?=$string;?>"></script>

答案 3 :(得分:0)

试试这个:

echo "<script type=\"text/javascript\" src=\"".$string"\"></script>\n";

如果“不起作用”,则字符串常量会出现一些错误,导致javascript错误。

请提供更多信息,例如生成的来源或确切的浏览器错误。

<强>更新

@ user1641732:截至Mahan的评论。你包括JSON对象,而不是javascript。你试图实现什么?您是否了解JSON对象和javscript代码之间的区别?

答案 4 :(得分:0)

你为什么要这样做?从YouTube检索数据的最佳方法是执行php cUrl请求并解码json数据,或者,如果你真的需要,你可以将内容保存到file_put_contents或fopen的文件中。

这是一个cUrl示例,添加您自己的$ url变量:

// get the data via curl
$ch = curl_init();
curl_setopt( $ch, CURLOPT_URL, $url );
curl_setopt( $ch, CURLOPT_ENCODING, "" );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT, 10 );
curl_setopt( $ch, CURLOPT_TIMEOUT, 10 );
$rsp = json_decode(curl_exec($ch));
curl_close($ch);

答案 5 :(得分:0)

<?php
$string = "http://gdata.youtube.com/feeds/api/videos/gzDS-Kfd5XQ?v=2&alt=json-in-script&callback=youtubeFeedCallback";
?>

<script type="text/javascript" src="<?php echo $string; ?>"></script>