目前我正在使用用户名检查程序。我试图让所有可用的用户名回显到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 {
}
}
}
?>
答案 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>';