我正在开发一种以这种方式运作的系统:
但是,在其中一行中,参数是使用换行符存储的,我需要我的系统识别此换行符,然后发送'作为新的价值。
代码:
foreach($rows as $row){
$ips = $row['dedicatedip'];
$ips2 = $row['assignedips'];
$status = $row['domainstatus'];
echo '<b>', $ips . ' -</b> '; echo "<input type='text' value="; echo consultaIP($ips); echo ">"; echo '<b> Status:'; if ($status==Active) { echo ' <span class="label active">Ativo</span></b><br><br>';} else { echo ' <span class="label pending">Desativado</span></b><br/><br/>';}
if ($ips2 != '') { echo '<b>', $ips2 . ' -</b> '; echo "<input type='text' value="; echo consultaIP($ips); echo ">"; echo '<b> Status:'; if ($status==Active) { echo ' <span class="label active">Ativo</span></b><br><br>';} else { echo ' <span class="label pending">Desativado</span></b><br/><br/>';} }
}
PS:function consultaIP是一个查找IP反向DNS的函数。
dedicatedip行只存储了一个值,所以没问题。但是分配的IP有一个buch,存储方式如下:
177.101.0.100
177.101.0.101
177.101.0.102
问题是系统需要为每个IP创建输入,而这种情况不会发生(它显示如下:177.101.0.100 177.101.0.101 177.101.0.102)。
这些值不会返回数据库,所以这不会有问题。它将在POST表单中使用。
编辑:
我已添加此行:
chars = explode("\n", $ips2);
阵列看起来像那样:
数组([0] =&gt; 177.101.229.92 [1] =&gt; 177.101.229.80)
但是,如何在foreach中使用此数组输出,并正确填充输入?
解决:
$chars = explode("\n", $ips2);
foreach($chars as $iplista){
if ($ips2 != '') { echo '<b>', $iplista . ' -</b> '; echo "<input type='text' value="; echo consultaIP($ips); echo ">"; echo '<b> Status:'; if ($status==Active) { echo ' <span class="label active">Ativo</span></b><br><br>';} else { echo ' <span class="label pending">Desativado</span></b><br/><br/>';} }
}
答案 0 :(得分:2)
如果我理解正确,您希望在每个IP上处理一组IP地址吗?
您可以使用explode功能拆分字符串,例如在换行符char "\n"
上。如果您不知道换行符序列(\ r,\ n或\ r \ n)或输入可能会有所不同,则可以使用preg_split来分割正则表达式,例如\s
表示所有空格,(\r|\n|\r\n)
表示系统无关换行。