比较php中的rgb颜色代码

时间:2014-05-28 05:57:47

标签: javascript php

以下是我的代码:

<div id="accept" style="background-color:#83CC3F;"></div>
<script type="text/javascript" >
function accept1() {
return document.getElementById('accept').style.backgroundColor;
}
 </script>
<?php
$js=<<<EOF
<script type="text/javascript" >
document.write(accept1());
 </script>
EOF;
echo $js;
if($js == "rgb(131, 204, 63)") //rgb(131, 204, 63) rgb equivalent of hex code #83CC3F
{
echo "yes"; 
}
?>

以上代码不返回“是”,而$ js = rgb(131,204,63), 请解决我的问题

2 个答案:

答案 0 :(得分:0)

你不能在php中使用var ..

$js=<<<EOF
<script type="text/javascript" >
document.write(accept1());
 </script>

因为php是服务器端语言.. 和javascript是客户端。

为此你必须使用ajax,get和post方法

<强> UPDATE1:

记住在客户端浏览器上执行Javascript始终是非常重要的,&amp; PHP在服务器上执行。所以$js不知道是什么

<script type="text/javascript" >
document.write(accept1());
 </script>

将是,因为在它到达查看器浏览器之前不会执行。 &安培;同样,一旦观众浏览器得到它,PHP就完成了,所以它无法关闭输出

UPDATE2 :如果您执行以下操作,则会回显是。

if($js == '<script type="text/javascript" >document.write(accept1());</script>'); //rgb(131, 204, 63) rgb equivalent of hex code #83CC3F
{
echo "yes"; 
}

这是因为PHP变量$js仍然设置了<script type="text/javascript" >document.write(accept1());</script>值。

答案 1 :(得分:0)

您必须在js中检查此代码,但PHP不会渲染内容而不会从html元素中获取颜色。

为了通过eq到HEX检查RGB,您可以将每个部分RGB转换为DEC并连接此字符串,并在检查eq。

之后

例如RGB(10,20,30):

DECTOHEX(10) . DECTOHEX(20) . DECTOHEX(30) == '#0A141E'