рег. выражение, есть вопрос

herr_skin

Новичок
рег. выражение, есть вопрос

имею кусок кода:
PHP:
<table id="details" cellspacing="0">                          
<tr>                             
<th>Price</th>                            
<td>$89,765</td>                      
</tr>                                  
<tr>                              
<th>Body Style</th>                              
<td>Coupe</td>                         
</tr>                              
<tr>                              
<th>Mileage</th>                              
<td>7</td>                         
 </tr>
надо получть в переменную $89,765, Coupe, 7 ... etc.
Начинаю с самого тупого:
PHP:
preg_match_all ('#<td>([^</>]+?)</td>#i', $test, $temp);
циклом вывожу значения, но есть одно но - если поля одного нет, то сопоставить данные нельзя будет.
делаю более конкретный поиск:
PHP:
preg_match_all ('#Price</th><td>([^</>]+?)</td>#i', $test, $temp);
не работает ... в чем проблема понять не могу.
 

SiMM

Новичок
С точки зрения PCRE пробелы и переводы строки в subject - это тоже символы.
 

herr_skin

Новичок
а как же мне тогда ограничить условия поиска?
у меня переводов строки и пробелов немеряно. На самом деле фаил такой:
PHP:
<table id="details" cellspacing="0">
                        <tr>
                            <th>Price</th>
                            <td>$89,765</td>
                        </tr> ....
 

white phoenix

Новичок
herr_skin
1.
PHP:
$str = str_replace("\n","",$str);
работает
2. [m]trim[/m] каждой строки и удаление \n:
PHP:
$str = '<table id="details" cellspacing="0">                           
<tr>                              
<th>Price</th>                             
<td>$89,765</td>                       
</tr>                                   
<tr>                               
<th>Body Style</th>                               
<td>Coupe</td>                          
</tr>                               
<tr>                               
<th>Mileage</th>                               
<td>7</td>                          
 </tr>';
$a = explode("\n",$str);
$n = "";
foreach($a as $v) {$n .= trim($v);}
echo $n;
<table id="details" cellspacing="0"><tr><th>Price</th><td>$89,765</td></tr><tr><th>Body Style</th><td>Coupe</td></tr><tr><th>Mileage</th><td>7</td></tr>
3. можно и без п.2., просто при составлении рег. выражения обрати внимание на модификатор "m".
 
Сверху