如何从文本文件中过滤掉字母(字符串的开头和结尾),然后将它们打印出来
How to filter out letters from text file (start of string and end) , then print them out
该函数需要跳过文本文件中(读取后)在 FIRST && LAST 字符串位置包含符号或数字的行。
例如 string($password column) 121dafasd 应该跳过并且不打印出来,因为它以数字开头
我尝试了很多东西,但所有试验都失败了。我刚接触 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>");
现在它将所有数据打印为 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
您可以使用 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>
该函数需要跳过文本文件中(读取后)在 FIRST && LAST 字符串位置包含符号或数字的行。 例如 string($password column) 121dafasd 应该跳过并且不打印出来,因为它以数字开头 我尝试了很多东西,但所有试验都失败了。我刚接触 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>");
现在它将所有数据打印为 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
您可以使用 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>