我想在图像on.png或off.png之前显示每个中继的名称。 我有2页:
switch.php and functions.php
switch.php,为每个继电器显示或关闭图标,读取gpio状态。 functions.php显示每个中继的名称。
我不知道如何在switch.php中调用类似r $ i()的函数来显示如下内容:
relay0<img id='button_0' src='images/off.png' alt='off'/><br>
relay1<img id='button_1' src='images/off.png' alt='off'/>
有我的脚本:
// switch.php
<?php
$status = array(0, 0, 0, 0, 0, 0, 0);
for ($i = 0; $i < count($status); $i++) {
//set the pin's mode to output and read them
system("gpio mode ".$i." out");
exec ("gpio read ".$i, $status[$i], $return );
if ($status[$i][0] == 0 ) {
echo ("<img id='relay_".$i."' src='images/off.png' alt='off'/><br>");
}
if ($status[$i][0] == 1 ) {
echo ("<img id='relay_".$i."' src='images/on.png' alt='on'/><br>");
}
}
和
// function.php
<?php
function r0(){
echo "relay0";
}
function r1(){
echo "relay1";
}
function r2(){
echo "relay2";
}
function r3(){
echo "relay3";
}
?>
感谢您的帮助。
答案 0 :(得分:0)
如果继电器的ID与您不需要function.php脚本的按钮的ID匹配,请尝试以下操作:
<强> switch.php 强>
<?php
$status = array(0, 0, 0, 0, 0, 0, 0);
for ($i = 0; $i < count($status); $i++) {
//set the pin's mode to output and read them
system("gpio mode ".$i." out");
exec ("gpio read ".$i, $status[$i], $return );
if ($status[$i][0] == 0 ) {
echo ("relay$i<img id='relay_".$i."' src='images/off.png' alt='off'/><br>");
}
if ($status[$i][0] == 1 ) {
echo ("relay$i<img id='relay_".$i."' src='images/on.png' alt='on'/><br>");
}
}
注意:当你使用双引号时,不需要用点来连接变量。
我希望这对你有所帮助。
更新:另一个方法是使用数组,看看......
<?php
$relays = array();
$relays[] = "A";
$relays[] = "B";
$relays[] = "C";
$relays[] = "D";
$status = array(0, 0, 0, 0, 0, 0, 0);
for ($i = 0; $i < count($status); $i++) {
//set the pin's mode to output and read them
system("gpio mode ".$i." out");
exec ("gpio read ".$i, $status[$i], $return );
if ($status[$i][0] == 0 ) {
echo ("{$relays[$i]}<img id='relay_".$i."' src='images/off.png' alt='off'/><br>");
}
if ($status[$i][0] == 1 ) {
echo ("{$relays[$i]}<img id='relay_".$i."' src='images/on.png' alt='on'/><br>");
}
}
答案 1 :(得分:0)
假设您的function.php
文件将来应该被更多功能替换,您可以这样做:
function r0() {
echo 'relay0';
}
function r1() {
echo 'relay1';
}
$i = 1;
$fn = "r$i"; // string containing function name
$fn(); // this will call function 'r1'
call_user_func($fn); // this will also call 'r1'
希望这会有所帮助:)
答案 2 :(得分:0)
您可以使用变量函数
$function = 'r'.$i; //set function name
$function(); //call the function
更多信息:http://php.net/manual/en/functions.variable-functions.php