Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: <a></a>
 
 автор: sata   (23.08.2006 в 23:38)   письмо автору
 
 

Вроде всё правильно делаю, а что то неполучается.
Первоначально строка выглядит так


<a name="4628125" class="stockno" href="vehicledetails.aspx?auctionid=4279234&itemid=4628125">2331155         </a>


Сам код скрипта


 $pattern='|<a[\s]+name=\"[.*]+\"[\s]+class=\"stockno\"[\s]+href=\"vehicledetails.aspx?auctionid=[.*]+&itemid=(.*)\">|isU'; 
 preg_match_all($pattern,$str,$out); 
 print_r($out);
 echo "<p></p>";
 print $out[0];
 echo "<p></p>";
 print $out[1];
 echo "<p></p>";
 print $out[2];


В браузер выводит


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

Array

Array


Суть в том что надо вытащить параметр itemid из ссылки

   
 
 автор: kasmanaft   (24.08.2006 в 00:30)   письмо автору
 
   для: sata   (23.08.2006 в 23:38)
 

Вот, можно вот так сделать

<?
$str 
'<a name="4628125" class="stockno" href="vehicledetails.aspx?auctionid=4279234&itemid=4628125">2331155</a>';
// $pattern='|<a[\s]+.*itemid=(.*)\">|isU'; - если не критично, можно и так
$pattern='|<a[\s]+name=\".*\"[\s]+class=\"stockno\"[\s]+href=\"vehicledetails\.aspx\?auctionid=.*&itemid=(.*)\">|isU';
preg_match($pattern,$str,$out);
echo 
$out[1];
?>

   
 
 автор: sata   (24.08.2006 в 18:52)   письмо автору
 
   для: kasmanaft   (24.08.2006 в 00:30)
 

Да но таких ссылок больше 1 тогда по теории используется preg_match_all

   
 
 автор: sata   (24.08.2006 в 19:30)   письмо автору
 
   для: sata   (24.08.2006 в 18:52)
 

Всё с 1 разобрался, терь следующее идёт (Закон подлости).
Если $str брать из файла то всё идёт путём почему то, но если исходник вставлять в форму и обрабатывать то пусто (в массиве ничего нет) получается (Исходник - это html код страницы)

P.S. Данные передаются. При echo $str выводится правда не текст а web страница исходника


<form action="" method="post">
<textarea cols="100" rows="15" name="form_s"></textarea>
<input name="go" type="submit" value="Обработать">
</form>
<hr>
<?php
if(isset($_POST[go]))
{
  
// Обработка формы
 
$str $_POST[form_s];
 
$pattern='|<a[\s]+name=\".*\"[\s]+class=\"stockno\"[\s]+href=\"vehicledetails\.aspx\?auctionid=.*&itemid=(.*)\">|isU';
 
preg_match_all($pattern,$str,$out,PREG_PATTERN_ORDER); 
 
// Обработка результатов формы
 
print_r($out);
 for (
$i=0$icount($out[0]); $i++)
 {
  echo 
$out[1][$i]."\n";
  }
}
unset(
$_POST[go]);
?>

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования