如何在对象嵌入期间将查询参数注入到作为对象输入处理的 PHP 脚本中?例如,Shockwave 播放器提供了一个由脚本生成的音乐播放列表,如代码示例中所示:
<object type="application/x-shockwave-flash" data="swf_player.swf?sort=track&skin_url=player/skin.xml&playlist_url=music/Playlist_Generator.php">
其中 swf_player.swf 识别查询参数“skin_url”和“playlist_url”,而 Playlist_Generator.php 识别参数“sort”。播放列表生成器脚本识别指定目录中的 .mp3 曲目并解构它们以获取 ID3 信息标签(艺术家、标题、曲目编号、专辑等)。然后它会发出一个播放列表,该列表主要由一个带有相关曲目信息的曲目列表组成,该曲目列表指向 .mp3 目录,swf_player 可以在该目录中找到这些曲目。
当直接在浏览器的地址栏上调用生成器时,Playlist_Generator.php 从查询字符串中提取排序参数,如
http://localhost/music/Playlist_Generator.php?sort=track
通过
$sort_type = $_REQUEST['sort'];
$sort_type = !empty($sort_type) ? $sort_type : 'title';
sort 参数表示用户对播放列表中曲目排序的偏好。直接脚本调用是播放列表生成器正在开发时使用的设置,因为它有助于丰富的调试信息。但是,一旦生成器与播放器“内联”使用,如上所述,查询参数对它不可用。在上面显示的嵌入样本中,播放列表生成器的 PHP 代码在查询扩展期间被处理,因此查询参数,特别是“排序”,对其不可用。
我应该非常感谢任何可能为 PHP 脚本设计了一种在“动态”处理时获取外部信息的方法的人。虽然上述问题已被描述为无法访问查询参数,但可能存在替代方案,脚本可以获取外部信息。欢迎所有问题,评论和特别建议!
在此先感谢所有做出贡献的人。