Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   preg_match_all подскажите (https://forum.antichat.xyz/showthread.php?t=157290)

Adekvatnyj 17.11.2009 17:14

preg_match_all подскажите
 
есть строка
Код:

<tr><td>e10bb0c3fb</td><td><font color=black>
Как настроить preg_match_all , чтоб с нее парсилось только то что между <tr><td> и </td><td><font color=black>
и шло в переменную...

LStr1ke 17.11.2009 17:21

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];
?>


-=lebed=- 17.11.2009 17:25

Цитата:

Сообщение от Adekvatnyj
есть строка
Код:

<tr><td>e10bb0c3fb</td><td><font color=black>
Как настроить preg_match_all , чтоб с нее парсилось только то что между <tr><td> и </td><td><font color=black>
и шло в переменную...

PHP код:

$pattern='/<tr><td>(.+)<\/td><td><font color=black>/s' 


Adekvatnyj 17.11.2009 17:35

Код:

  $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>

LStr1ke 17.11.2009 17:39

Сделай
print_r($code); вместо echo $code[0][0];
и напиши сюда результат

Deathdreams 17.11.2009 17:39

LStr1ke
Опередил :)

Adekvatnyj 17.11.2009 17:41

Array ( [0] => Array ( [0] => e10bb0c3fb ) [1] => Array ( [0] => e10bb0c3fb ) )

LStr1ke 17.11.2009 17:46

Ну тогда все правильно
$code[0][0];
Просто в твоем коде между [0][0] стоит пробел ) Убери его

Adekvatnyj 17.11.2009 17:46

Как преобразовать масив в 1 переменную?

Deathdreams 17.11.2009 17:47

Цитата:

Сообщение от Adekvatnyj
Как преобразовать масив в 1 переменную?

$var = $code[0][0];


:D

Adekvatnyj 17.11.2009 17:52

Код:

  $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>

Adekvatnyj 17.11.2009 17:53

Цитата:

Сообщение от LStr1ke
Ну тогда все правильно
$code[0][0];
Просто в твоем коде между [0][0] стоит пробел ) Убери его

где

Deathdreams 17.11.2009 18:03

Цитата:

Сообщение от Adekvatnyj
Код:

  $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>

Что вот это такое : echo $code[0][0]\n; ?


Код:

 
  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 'страница не спарсилась'; }


b3 17.11.2009 19:03

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);
    }
       
   }   

?>


erihtoney 18.11.2009 06:39

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); 
  } 
?>

пох


Время: 10:25