小编UBE*_*BEX的帖子

PHP生成带引号错误的Javascript代码

我有这个PHP页面:

<?php

$lines = array();
$lines[] = "I am happy";
$lines[] = "I'm happy";

foreach ($lines as $line){
    $message = htmlspecialchars($line);
    ?>
    <div onclick="alert('<?=$message?>');"><div>
    <?php
}
Run Code Online (Sandbox Code Playgroud)

它生成此HTML结果:

<div onclick="alert('I am happy');"><div>
<div onclick="alert('I&#039;m happy');"><div>
Run Code Online (Sandbox Code Playgroud)

此代码似乎是正确的,但是,单击第二个"div"元素时会发生错误.

' char相当于'和javascript生成错误:

alert('I'm happy');"
Run Code Online (Sandbox Code Playgroud)

我解决了这个问题,添加代码addslashes() PHP函数:

$lines = array();
$lines[] = "I am happy";
$lines[] = "I'm happy";

foreach ($lines as $line){
    $message = htmlspecialchars(addslashes($line));
    ?>
    <div onclick="alert('<?=$message?>');"><div>
    <?php
}
Run Code Online (Sandbox Code Playgroud)

正确的结果:

<div onclick="alert('I am happy');"><div>
<div onclick="alert('I\&#039;m happy');"><div>
Run Code Online (Sandbox Code Playgroud)

我的问题:

这是正确/最佳的解决方案吗?哪种方法可以解决这类问题?

html javascript php

3
推荐指数
1
解决办法
98
查看次数

PHP 如何检查 PDF 是否经过数字签名

我的 PHP 程序使用 生成 PDF TCPDF,然后:

  1. 用户下载PDF;
  2. 用户对 PDF 进行数字签名;
  3. 用户上传签名的PDF;

对于第 3 步,我想检查上传的文件是否经过数字签名。

更好的是检查上传的文件是否与程序在步骤 1 中生成的文件相同。

php pdf pdf-generation tcpdf

3
推荐指数
1
解决办法
3384
查看次数

如何测试值是否在数组PHP中(键搜索)

这是我在PHP中的数组:

$arr['key1']='value1';
$arr['key2']='value2';
$arr['key3']='value3';
$arr['key4']='value4';
$arr['key5']='value5';
$arr['key6']='value6';
Run Code Online (Sandbox Code Playgroud)

我想测试一个键是否在数组中.这个功能是正确的方法吗?

function isKeyInArray($key, $arr) {
   if(isset($arr[$key]))
      return true;
   else
      return false;
}
Run Code Online (Sandbox Code Playgroud)

我的期望是:

isKeyInArray('key3', $arr) // return true
isKeyInArray('key9', $arr) // return false
Run Code Online (Sandbox Code Playgroud)

提前谢谢了.

php arrays

0
推荐指数
1
解决办法
133
查看次数

标签 统计

php ×3

arrays ×1

html ×1

javascript ×1

pdf ×1

pdf-generation ×1

tcpdf ×1