该功能需要跳过文本文件中的行(在读取后),其中在FIRST && LAST字符串位置包含符号或数字。 例如,应该跳过string($ password column) 1 21dafas d 并且不打印出来,因为它以数字开头 我尝试了很多事情,但是所有尝试都失败了。我是PHP语言的新手
THE CODE
function dataPrint(){
print "\t"." Users: Login Password <br>";
$file=fopen("data.txt" , "c");
if (!$file)
print "Error! No such file!";
else {
print "<table><tr><th width=\"50%\">Login</th>
<th width=\"50%\">Password</th>
";
$info=file("data.txt");
foreach($info as $rec)
{
$rec=rtrim($rec);
print("<tr>");
list($login, $pass) = explode(' ', "$rec");
print("<td>$login</td>");
print("<td>$pass</td>");
}
print("</table>");
现在它将所有数据打印为表格
Login Password
quartz 2sp1lzod54at3sia6
quartz1 73u168rtz54a2q
quartz2 odsp@aw1rs
但是它应该只打印那些在字符串的开始&&末尾仅包含字母的行
Example :
Login Password
quartz1 1asdfasdfdf@a <----- NOT VALID(Should not be printed)
quartz2 asdf!2adf1 <----- NOT VALID(Should not be printed)
quartz3 asdf211@11a <----- VALID
quartz4 gsasdff11e <----- VALID
quartz5 fd@adf!adf1d <----- VALID
结尾应该看起来像这样。
Login Password
quartz3 asdf211@11a
quartz4 gsasdff11e
quartz5 fd@adf!adf1d
答案 0 :(得分:1)
您可以使用preg_match
来验证密码是否以字母开头和结尾:
foreach($info as $rec) {
$rec=rtrim($rec);
list($login, $pass) = explode(' ', "$rec");
if (preg_match('/^[a-z].*[a-z]$/i', $pass)) {
print("<tr>");
print("<td>$login</td>");
print("<td>$pass</td>");
print("</tr>\n");
}
}
输出:
<tr><td>quartz3</td><td>asdf211@11a</td></tr>
<tr><td>quartz4</td><td>gsasdff11e</td></tr>
<tr><td>quartz5</td><td>fd@adf!adf1d</td></tr>