while循环和if语句麻烦php

时间:2011-03-10 19:22:24

标签: php html

我希望能够检查输入的字符串是否包含$ alphabet中的任何字符,以及是否显示每个相关字符的相关图像。所以,如果有人进入你好。它会显示h.png,e.png,l.png,l.png和o.png。到目前为止,我已经让它识别用户输入并回显它并搜索它是否有特定字母并通过以下代码将其输出到相关图像:

<?php
$input = trim($_POST["textarea"]);

echo $input;
echo "<br />";

if(strcmp($input[0],'a')==0){
    echo "<img src='egypt/$input.png'>";
    }else{
    echo "You did not write a";
    }


?>

完美无缺。然而,我试图输入更多的代码,这将允许整个字符串包括空格分析整个字母$ alphabet并使用以下代码将字符串中的每个字符匹配到右图:但它不起作用

<?php
    $input = trim($_POST["textarea"]);

    echo $input;
    echo "<br />";


    $alphabet = array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z');


    while (list(, $value) = each($alphabet) AND list(, $input) = each($value2)) {  
    if(strcmp($value2[0],$value)==0){
        echo "<img src='egypt/$value2.png'>";
        }else{
        echo "You did not write a";
        }
    }


    ?>

以上是必要的代码。

更新:我已经弄清楚如何将输入的第一个字母与字母表中的任何字母相匹配,但仍然在努力解决如何使用空格映射整个字符串。

<?php
$input = trim($_POST["textarea"]);

echo $input;
echo "<br />";

$alphabet = array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z');


  if(strcmp($input[0],$alphabet)==0){
    echo "<img src='egypt/$input.png'>";
    }else{
    echo "Error";
    }


?>

代码参考更新任何关心的人

2 个答案:

答案 0 :(得分:2)

让我建议你一条不同的路线。

$fos='hello world!';
$cucc=preg_replace('/([a-z])/', '<img src="$1.png" />', $fos);

这将用其img等效替换每个字母(a-z),因此您将得到以下结果:

<img src="h.png" /><img src="e.png" /><img src="l.png" /><img src="l.png" /><img src="o.png" /> <img src="w.png" /><img src="o.png" /><img src="r.png" /><img src="l.png" /><img src="d.png" />!

答案 1 :(得分:0)

我不确定这是否能彻底解决您的问题,但我马上注意到了这一点:

while (list(, $value) = each($alphabet) AND list(, $input) = each($value2))

应该是:

while (list(, $value) = each($alphabet) AND list(, $value2) = each($input))