Как отфильтровать буквы из текстового файла (начало строки и конец), а затем распечатать их - PullRequest
0 голосов
/ 23 января 2019

Функция должна пропускать строки в текстовом файле (после прочтения) с символами или числами в позиции строки FIRST && LAST.Например, строка (столбец $ password) 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     

1 Ответ

0 голосов
/ 23 января 2019

Вы можете использовать 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>

Демо на 3v4l.org

...