我有这个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'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\'m happy');"><div>
Run Code Online (Sandbox Code Playgroud)
我的问题:
这是正确/最佳的解决方案吗?哪种方法可以解决这类问题?
我的 PHP 程序使用 生成 PDF TCPDF,然后:
对于第 3 步,我想检查上传的文件是否经过数字签名。
更好的是检查上传的文件是否与程序在步骤 1 中生成的文件相同。
这是我在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)
提前谢谢了.