preg_match_all подскажите

Discussion in 'PHP' started by Adekvatnyj, 17 Nov 2009.

  1. Adekvatnyj

    Adekvatnyj Member

    Joined:
    28 Oct 2009
    Messages:
    18
    Likes Received:
    25
    Reputations:
    -3
    есть строка
    Code:
    <tr><td>e10bb0c3fb</td><td><font color=black>
    Как настроить preg_match_all , чтоб с нее парсилось только то что между <tr><td> и </td><td><font color=black>
    и шло в переменную...
     
  2. LStr1ke

    LStr1ke Elder - Старейшина

    Joined:
    29 Jul 2009
    Messages:
    801
    Likes Received:
    145
    Reputations:
    73
    PHP:
    <?php
    $str 
    "<tr><td>e10bb0c3fb</td><td><font color=black>";
    preg_match_all("#<tr><td>(.*)</td><td><font color=black>#i",$str,$out);
    echo 
    $out[0][0];
    ?>
     
  3. -=lebed=-

    -=lebed=- хэшкрякер

    Joined:
    21 Jun 2006
    Messages:
    3,804
    Likes Received:
    1,960
    Reputations:
    594
    PHP:
    $pattern='/<tr><td>(.+)<\/td><td><font color=black>/s'
     
  4. Adekvatnyj

    Adekvatnyj Member

    Joined:
    28 Oct 2009
    Messages:
    18
    Likes Received:
    25
    Reputations:
    -3
    Code:
       $str2 = $m[0][0]; 
       preg_match_all("#<tr><td>(.*)</td><td><font color=black>#i",$str2,$code);
       echo $code[0][0];
       $codo=$code[0][0];
    if ($codo) {
      $file=fopen("invite.txt","r+");
      $str = "$codo";
      if ( !$file )
      {
        echo("Ошибка открытия файла");
      }
      else
      {
        fputs ( $file, $str);
      }
      fclose ($file); 
    }
    Не работает... Выводит тот же <tr><td>e10bb0c3fb</td><td><font color=black>
     
  5. LStr1ke

    LStr1ke Elder - Старейшина

    Joined:
    29 Jul 2009
    Messages:
    801
    Likes Received:
    145
    Reputations:
    73
    Сделай
    print_r($code); вместо echo $code[0][0];
    и напиши сюда результат
     
  6. Deathdreams

    Deathdreams Elder - Старейшина

    Joined:
    8 Nov 2008
    Messages:
    342
    Likes Received:
    116
    Reputations:
    5
    LStr1ke
    Опередил :)
     
  7. Adekvatnyj

    Adekvatnyj Member

    Joined:
    28 Oct 2009
    Messages:
    18
    Likes Received:
    25
    Reputations:
    -3
    Array ( [0] => Array ( [0] => e10bb0c3fb ) [1] => Array ( [0] => e10bb0c3fb ) )
     
  8. LStr1ke

    LStr1ke Elder - Старейшина

    Joined:
    29 Jul 2009
    Messages:
    801
    Likes Received:
    145
    Reputations:
    73
    Ну тогда все правильно
    $code[0][0];
    Просто в твоем коде между [0][0] стоит пробел ) Убери его
     
  9. Adekvatnyj

    Adekvatnyj Member

    Joined:
    28 Oct 2009
    Messages:
    18
    Likes Received:
    25
    Reputations:
    -3
    Как преобразовать масив в 1 переменную?
     
  10. Deathdreams

    Deathdreams Elder - Старейшина

    Joined:
    8 Nov 2008
    Messages:
    342
    Likes Received:
    116
    Reputations:
    5
    $var = $code[0][0];


    :D
     
  11. Adekvatnyj

    Adekvatnyj Member

    Joined:
    28 Oct 2009
    Messages:
    18
    Likes Received:
    25
    Reputations:
    -3
    Code:
       $str2 = $m[0][0]; 
       preg_match_all("#<tr><td>(.*)</td><td><font color=black>#",$str2,$code);
       echo $code[0][0]\n;
       $var=$code[0][0];
       echo $var;
    if ($var) {
      $file=fopen("invite.txt","r+");
      $str = "$codo";
      if ( !$file )
      {
        echo("Ошибка открытия файла");
      }
      else
      {
        fputs ( $file, $str);
      }
      fclose ($file); 
    }
    Результат:
    <tr><td>e10bb0c3fb</td><td><font color=black><tr><td>e10bb0c3fb</td><td><font color=black>
    Как мне сделать чтоб был результат без <tr><td> и </td><td><font color=black>
     
  12. Adekvatnyj

    Adekvatnyj Member

    Joined:
    28 Oct 2009
    Messages:
    18
    Likes Received:
    25
    Reputations:
    -3
    где
     
  13. Deathdreams

    Deathdreams Elder - Старейшина

    Joined:
    8 Nov 2008
    Messages:
    342
    Likes Received:
    116
    Reputations:
    5
    Что вот это такое : echo $code[0][0]\n; ?


    Code:
       
       if(preg_match_all("#<tr><td>(.*)</td><td><font color=black>#", $m[0][0], $code)){
    
       $var = $code[0][0];
    if (!empty($var)) {
    
      $file = @fopen("invite.txt","a");
    
      if ( !$file )
      {
        echo("Ошибка открытия файла");
      }
      else
      {
        fputs ( $file, $var );
      }
      fclose ($file); 
    }
    
        }else{ echo 'страница не спарсилась'; }
     
  14. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,170
    Likes Received:
    1,155
    Reputations:
    202
    PHP:
    $str "$codo";
    Жги есчо))))

    Можно код существенно сократить

    PHP:
    <?php
    $str 
    "
    <tr><td>Инвайт 1-й</td><td><font color=black>
    <tr><td>Инвайт 2-й</td><td><font color=black>
    <tr><td>Инвайт 3-й</td><td><font color=black>
    <tr><td>Инвайт 4-й</td><td><font color=black>
    <tr><td>Инвайт 5-й</td><td><font color=black>
    <tr><td>Инвайт 6-й</td><td><font color=black>
    "
    ;


        if(
    preg_match_all("#<tr><td>(.*)</td><td><font color=black>#i"$str$matches))
       {
           
           foreach (
    $matches[1] as $string) {
               echo 
    $string.'<br>';
                   
    file_put_contents('invite.txt',$string."\r\n"FILE_APPEND);
        }
           
       }   

    ?>
     
  15. erihtoney

    erihtoney Member

    Joined:
    3 Mar 2009
    Messages:
    91
    Likes Received:
    73
    Reputations:
    20
    PHP:
    <?php
      $str 
    "
      <tr><td>str 1</td><td><font color=black>
      <tr><td>str 2</td><td><font color=black> 
      <tr><td>str 3</td><td><font color=black> 
      <tr><td>str 4</td><td><font color=black> 
      <tr><td>str 5</td><td><font color=black>
      "
    ;
      @
    preg_match_all("#<tr><td>(.*)</td><td><font color=black>#isU",$str,$out) ;
      
    $out $out[1];
      if(
    count($out))
      {
          foreach(
    $out as $str)
          {
          
    $out_str.=$str."\r\n";
          }
          
    $file_open = @fopen("file.txt","a+")   ;
          @
    fwrite($file_open,$out_str); 
      } 
    ?>
    пох