PHP:文本区内的回声?

时间:2014-04-20 14:11:34

标签: javascript php html

目前我正在使用用户名检查程序。我试图让所有可用的用户名回显到textarea,唯一的问题是因为textarea在一个函数和一个'if'语句中,而不是代码将所有可用的用户名显示在一个单一的文本区域中,因为textarea位于函数和'if'语句中,textarea继续生成每个用户名检查。

问题的实例:http://hawkgen.com/ogpost/

代码:(第二个textarea是产生问题的那个)

<?php

function getTitle($Url){
    $str = file_get_contents($Url);
    if(strlen($str)>0){
    preg_match("/\<title\>(.*)\<\/title\>/",$str,$title);
    return $title[1];
    }
    else
    return '404';
}
?>
<form action="index.php" method="post">
<textarea name="notes" value="username" rows="4" cols="50">
test
test1
test2
test3
test4
test5
</textarea>
<input type="submit" value="Submit">
</form>
<?php
$convert = explode("\r\n", $_POST["notes"]);

for ($i=0;$i<count($convert);$i++) 
{
    if (strlen($convert[$i])>0) {
        $resultCheck = getTitle("http://www.youtube.com/" . $convert[$i]);
        if (strpos($resultCheck,'404') !== false) {
?>
<textarea id="myText" rows="10" cols="40">
<?php 
echo $convert[$i]; 
echo "\n"; 
?>
</textarea>
            <?php
        }
        else {

        }
    }
}
?>

2 个答案:

答案 0 :(得分:1)

如果你想要一个文本区域标签和内容循环,那么你需要将你的for循环放在文本区域内。

<textarea><? foreach($convert as $i): ?><?= $i."\r\n" ?><? endforeach ?></textarea>

答案 1 :(得分:1)

作为帖子评论中提到的 andrewsi ,您可以在循环中聚合用户名,然后在循环外显示它们,如下所示:

$usernames = array();
for ($i=0;$i<count($convert);$i++) 
{
    if (strlen($convert[$i])>0) {
        $resultCheck = getTitle("http://www.youtube.com/" . $convert[$i]);
        if (strpos($resultCheck,'404') !== false) {
            $usernames[] = $convert[$i];
        }
    }
}

echo '<textarea id="myText" rows="10" cols="40">' . implode("\n", $usernames) . '</textarea>';