如何在PHP中回显一个字符串中的警报 - 与单引号和双引号混淆

时间:2016-12-24 10:53:41

标签: javascript php

我完全不知道如何在输出echo语句中将字符串表示到屏幕来调试php。

首先,这对我来说非常适合:

echo "<script type='text/javascript'>alert('Web Site Under Test -- line 344');</script>";

这使用双引号作为echo语句的一部分,在命令的外部,可以这么说,并在alert语句上使用单引号。它有效。

那么我如何在alert语句中发送字符串变量的内容?

我认为这应该有用

echo "<script type='text/javascript'>alert('$admin_ary -- ' $admin_ary);</script>";

我是对的吗?

更新

变量是一个数组,而不是一个字符串。 因此使用addslashes无效

例如,这一行:

echo "<script type='text/javascript'>alert('".addslashes($admin_ary." -- ".$admin_ary)."');</script>"; */

生成一条说明

的警告
  

数组 - 数组

2 个答案:

答案 0 :(得分:2)

关于它有很多种方法,但变量在双引号内作为值而不是实际字符串传递。所以你可以自由地alert('$admin_ary -- $admin_ary');(注意单引号是如何被移动的,因为javascript字符串需要在引号中)。

您也可以连接字符串,如此

echo "<script type='text/javascript'>alert('".$admin_ary." -- ".$admin_ary."');</script>";

或者只是跳出PHP来获取大部分字符串,并在需要时回显,比如

<?php /* Do PHP stuff */ ?>
<script type="text/javascript">alert('<?php echo $admin_ary." -- ".$admin_ary; ?>');</script>
<?php /* More PHP stuff */ ?>

如果您的$admin_ary包含单引号',则会破坏javascript。您可以通过使用PHP函数addslashes()来逃避它们来解决这个问题,这可以像这样完成

echo "<script type='text/javascript'>alert('".addslashes($admin_ary." -- ".$admin_ary)."');</script>";

答案 1 :(得分:1)

$wstr = 'www';
w_js_pure_alert($wstr);
function w_js_pure_alert($str)
{
    echo '<script>alert("' . $str . '");</script>';
}

function w_js_pure_console($val)
{
    echo '<script>console.log("' . $val . '");</script>';
}

function w_js_window_location($filename)
{
    echo '<script>window.location="' . $filename . '"</script>';
}