Попытка распечатать данные, найденные с помощью регулярных выражений, которые отправляются в 2 разных массива, распечатать в определенном порядке - PullRequest
2 голосов
/ 18 июня 2019

У меня есть файл HTML, из которого мне нужно получить определенные данные. Я использую регулярное выражение, которое кажется достаточно простым. У меня есть 2 типа данных, которые мне нужно вытащить. Мне нужны даты и транзакции. Я хочу распечатать все транзакции на определенную дату. Но из-за номера нумерации, а также транзакций. Я не знаю, как перебирать оба.

Я честно почесал голову над этим в течение нескольких часов и не смог найти решение.

$balpage=curl_exec($ch);

for($i=0;$i<count(  );$i++){
  if(preg_match('#<\s*?strong\b[^>]*>(.*?) 
  </strong\b[^>]*>#s',$balpage)==1){

    preg_match('#<\s*?strong\b[^>]*>(.*?) 
    </strong\b[^>]*>#s',$balpage,$date);

    preg_match('#\<span class=\"issecureoff\"\>(.+?)\ 
 <\/span\>#s',$balpage,$transactions);


print_r($date[1][$i]);
print_r($transactions[1][$i]);
}

Код, который вы видите, очень неполный и даже не работает, но я просто выкладываю, как это может выглядеть? Извините, я действительно новичок в этом, так что если вы, гуру кода, могли бы помочь мне, это было бы здорово.

1 Ответ

4 голосов
/ 18 июня 2019

Я предполагаю, что вы можете просто захотеть использовать preg_match_all, но мы можем немного изменить и наше выражение:

<\s*strong[^>]*>(.*?)<\/strong[^>]*>|<span class="issecureoff">(.+?)<\/span>

Тест

$re = '/<\s*strong[^>]*>(.*?)<\/strong[^>]*>|<span class="issecureoff">(.+?)<\/span>/m';
$str = '<i class="uk-icon-calendar"></i><strong>2019.06.04</strong></td>
                                </tr>

                                <tr>
                                    <td>
                                         09:35
                                    </td>
                                    <td>
                                        орлого
                                    </td>
                                    <td class="text-16 uk-text-nowrap">
                                        <span class="issecureoff">0.00</span>
                                        <span class="issecureon">*</span>
                                    </td>

                                    <td class="text-green uk-text-nowrap">
                                        <span class="issecureoff">5,000.00</span>
                                        <span class="issecureon">*</span>
                                        <img src="Content/img/arrow_up.png" width="8"></td>

                                    <td class="text-16 uk-text-nowrap">
                                        <span class="issecureoff">5,000.00</span>
                                        <span class="issecureon">*</span>
                                    </td>
                                    <td class="text-16 uk-text-nowrap uk-text-right">                 </td>
                                </tr>

                                <tr>
                                    <td>
                                         09:35
                                    </td>
                                    <td>
                                        Ухаалаг мэдээ үйлчилгээний хураамж
                                    </td>
                                    <td class="text-16 uk-text-nowrap">
                                        <span class="issecureoff">5,000.00</span>
                                        <span class="issecureon">*</span>
                                    </td>

                                    <td class="text-red uk-text-nowrap">
                                        <span class="issecureoff">-50.00</span>
                                        <span class="issecureon">*</span>
                                        <img src="Content/img/arrown_down.png" width="8"></td>

                                    <td class="text-16 uk-text-nowrap">
                                        <span class="issecureoff">4,950.00</span>
                                        <span class="issecureon">*</span>
                                    </td>
                                    <td class="text-16 uk-text-nowrap uk-text-right">                 </td>
                                </tr>

                                <tr>
                                    <td colspan="6" class="text-12 letter-space-1"><i class="uk-icon-calendar"></i><strong>2019.06.14</strong></td>
                                </tr>

                                <tr>
                                    <td>
                                         11:00
                                    </td>
                                    <td>
                                        batidert
                                    </td>
                                    <td class="text-16 uk-text-nowrap">
                                        <span class="issecureoff">4,950.00</span>
                                        <span class="issecureon">*</span>
                                    </td>

                                    <td class="text-green uk-text-nowrap">
                                        <span class="issecureoff">50,000.00</span>
                                        <span class="issecureon">*</span>
                                        <img src="Content/img/arrow_up.png" width="8"></td>

                                    <td class="text-16 uk-text-nowrap">
                                        <span class="issecureoff">54,950.00</span>
                                        <span class="issecureon">*</span>
                                    </td>
                                    <td class="text-16 uk-text-nowrap uk-text-right">       5028604392</td>
                                </tr>
';

preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);

// Print the entire match result
var_dump($matches);

Вывод

array(11) {
  [0]=>
  array(2) {
    [0]=>
    string(27) "<strong>2019.06.04</strong>"
    [1]=>
    string(10) "2019.06.04"
  }
  [1]=>
  array(3) {
    [0]=>
    string(37) "<span class="issecureoff">0.00</span>"
    [1]=>
    string(0) ""
    [2]=>
    string(4) "0.00"
  }
  [2]=>
  array(3) {
    [0]=>
    string(41) "<span class="issecureoff">5,000.00</span>"
    [1]=>
    string(0) ""
    [2]=>
    string(8) "5,000.00"
  }
  [3]=>
  array(3) {
    [0]=>
    string(41) "<span class="issecureoff">5,000.00</span>"
    [1]=>
    string(0) ""
    [2]=>
    string(8) "5,000.00"
  }
  [4]=>
  array(3) {
    [0]=>
    string(41) "<span class="issecureoff">5,000.00</span>"
    [1]=>
    string(0) ""
    [2]=>
    string(8) "5,000.00"
  }
  [5]=>
  array(3) {
    [0]=>
    string(39) "<span class="issecureoff">-50.00</span>"
    [1]=>
    string(0) ""
    [2]=>
    string(6) "-50.00"
  }
  [6]=>
  array(3) {
    [0]=>
    string(41) "<span class="issecureoff">4,950.00</span>"
    [1]=>
    string(0) ""
    [2]=>
    string(8) "4,950.00"
  }
  [7]=>
  array(2) {
    [0]=>
    string(27) "<strong>2019.06.14</strong>"
    [1]=>
    string(10) "2019.06.14"
  }
  [8]=>
  array(3) {
    [0]=>
    string(41) "<span class="issecureoff">4,950.00</span>"
    [1]=>
    string(0) ""
    [2]=>
    string(8) "4,950.00"
  }
  [9]=>
  array(3) {
    [0]=>
    string(42) "<span class="issecureoff">50,000.00</span>"
    [1]=>
    string(0) ""
    [2]=>
    string(9) "50,000.00"
  }
  [10]=>
  array(3) {
    [0]=>
    string(42) "<span class="issecureoff">54,950.00</span>"
    [1]=>
    string(0) ""
    [2]=>
    string(9) "54,950.00"
  }
}

Пожалуйста, посмотрите демо здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...