Javascript/PHP忽略字符串中的引号
我正在用php和javascript制作一个音乐播放器。我列出的文件如下:Javascript/PHP忽略字符串中的引号,javascript,php,audio,Javascript,Php,Audio,我正在用php和javascript制作一个音乐播放器。我列出的文件如下: <?php if (isset($_GET["action"])) { $action = htmlspecialchars($_GET["action"]); if ($action == "listen") { function listFolderFiles($dir) { $ffs = scandir($dir); echo
<?php
if (isset($_GET["action"])) {
$action = htmlspecialchars($_GET["action"]);
if ($action == "listen") {
function listFolderFiles($dir) {
$ffs = scandir($dir);
echo '<ol>';
foreach($ffs as $ff){
if($ff != '.' && $ff != '..'){
echo '<li><a href="#" onclick="changesong(\'' . $dir . '/' . $ff . '\');">'. $ff . '</a>';
if (is_dir($dir . '/' . $ff)) listFolderFiles($dir . '/' . $ff);
echo '</li>';
}
}
echo '</ol>';
}
listFolderFiles("music");
}
} else {
echo '<a href="?action=listen">> listen</a>';
}
?>
<script>
function changesong(url) {
$("#audioplayer").attr("src", url);
$("#audioplayer").trigger('play');
}
</script>
echo '<li><a href="#" onclick="changesong(\'' .addslashes($dir . '/' . $ff). '\');">'. $ff . '</a>';
我把这首歌改成这样:
<?php
if (isset($_GET["action"])) {
$action = htmlspecialchars($_GET["action"]);
if ($action == "listen") {
function listFolderFiles($dir) {
$ffs = scandir($dir);
echo '<ol>';
foreach($ffs as $ff){
if($ff != '.' && $ff != '..'){
echo '<li><a href="#" onclick="changesong(\'' . $dir . '/' . $ff . '\');">'. $ff . '</a>';
if (is_dir($dir . '/' . $ff)) listFolderFiles($dir . '/' . $ff);
echo '</li>';
}
}
echo '</ol>';
}
listFolderFiles("music");
}
} else {
echo '<a href="?action=listen">> listen</a>';
}
?>
<script>
function changesong(url) {
$("#audioplayer").attr("src", url);
$("#audioplayer").trigger('play');
}
</script>
echo '<li><a href="#" onclick="changesong(\'' .addslashes($dir . '/' . $ff). '\');">'. $ff . '</a>';
函数changesong(url){
$(“#audioplayer”).attr(“src”,url);
$(“#音频播放器”).trigger('play');
}
问题是带有引号的歌曲无法播放(例如,现在不要阻止我)。有没有一种简单的方法可以解决这个问题?您应该使用addslashes(),如下所示:
<?php
if (isset($_GET["action"])) {
$action = htmlspecialchars($_GET["action"]);
if ($action == "listen") {
function listFolderFiles($dir) {
$ffs = scandir($dir);
echo '<ol>';
foreach($ffs as $ff){
if($ff != '.' && $ff != '..'){
echo '<li><a href="#" onclick="changesong(\'' . $dir . '/' . $ff . '\');">'. $ff . '</a>';
if (is_dir($dir . '/' . $ff)) listFolderFiles($dir . '/' . $ff);
echo '</li>';
}
}
echo '</ol>';
}
listFolderFiles("music");
}
} else {
echo '<a href="?action=listen">> listen</a>';
}
?>
<script>
function changesong(url) {
$("#audioplayer").attr("src", url);
$("#audioplayer").trigger('play');
}
</script>
echo '<li><a href="#" onclick="changesong(\'' .addslashes($dir . '/' . $ff). '\');">'. $ff . '</a>';
echo'';
您可以在HTML代码中转义javascript函数的引号,如下所示:
<?php
if (isset($_GET["action"])) {
$action = htmlspecialchars($_GET["action"]);
if ($action == "listen") {
function listFolderFiles($dir) {
$ffs = scandir($dir);
echo '<ol>';
foreach($ffs as $ff){
if($ff != '.' && $ff != '..'){
echo '<li><a href="#" onclick="changesong(\'' . $dir . '/' . $ff . '\');">'. $ff . '</a>';
if (is_dir($dir . '/' . $ff)) listFolderFiles($dir . '/' . $ff);
echo '</li>';
}
}
echo '</ol>';
}
listFolderFiles("music");
}
} else {
echo '<a href="?action=listen">> listen</a>';
}
?>
<script>
function changesong(url) {
$("#audioplayer").attr("src", url);
$("#audioplayer").trigger('play');
}
</script>
echo '<li><a href="#" onclick="changesong(\'' .addslashes($dir . '/' . $ff). '\');">'. $ff . '</a>';
请注意,您可能还需要转义双引号,因为它们可能会干扰HTML标记
$link = $dir . '/' . $ff;
$link = str_replace("'", "'", $link);
$link = str_replace('"', """, $link);
echo '<li><a href="#" onclick="changesong(\'' . $link . '\');">'. $ff . '</a>';
$link=$dir.'/'$ff;
$link=str_replace(“'”,“&apos;”,$link);
$link=str_replace(“,”,“,$link);
回音“”;
您看过呈现的HTML吗?