views:

274

answers:

1
$match_expression = '/<a href="look.php\?id=(.*)" title="Look page: (.*)">(.*)<\/A>/';
  $radompgr =  preg_match_all($match_expression,$q2,$match, PREG_SET_ORDER);
  if($radompgr == TRUE){echo "found $radompgr<br>";}else{echo "not found $radompgr<br>";} //found
for ($i = 0; $i < count($match); $i++) {
  $mathcas = $match[$i][1];
   $radom = preg_match('/[0-9a-z]{39,41}/',$mathcas,$matches2); 
   if($radom == TRUE){
   $match11 = $matches2[1];
   echo "found".$i.": ".$match11."";}else{echo"".$i."not found :(<br>";}
} //  "found0", but don`t show $match11 variable.

Show "found0", but don`t show $match11. How to do $match 11 to show? Return:

Notice: Undefined offset: 1 in C:\xampp\htdocs\page.php on line 75 found0: Notice: Undefined offset: 1 in C:\xampp\htdocs\copy\page.php on line 75 found1: Notice: Undefined offset: 1 in C:\xampp\htdocs\copy\page.php on line 75 found2:

Sorry if my English is not perfect, I'm not a native. :) Thank you for your help.

+3  A: 

You forgot to enclose the () in preg_match():

$match_expression = '/<a href="look.php\?id=(.*)" title="Look page: (.*)">(.*)<\/A>/';
$radompgr = preg_match_all($match_expression, $q2, $match, PREG_SET_ORDER);

if ($radompgr >= 1)
{
    echo 'found ' . $radompgr;

    for ($i = 0; $i < count($match); $i++)
    {
     $mathcas = $match[$i][1];

     $radom = preg_match('/([0-9a-z]{39,41})/', $mathcas, $matches2);

     if ($radom >= 1)
     {
      $na = $matches2[1];

      echo 'found' . $i . ': ' . $na;
     }

     else
     {
      echo $i . 'not found';
     }
    }
}

else
{
    echo 'not found ' . $radompgr;
}
Alix Axel