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

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

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

 

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

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

тема: Поиск и замена...
 
 автор: PROUser   (15.07.2008 в 15:39)   письмо автору
 
 

Уважаемы форумчане, учусь писать граббер, вроде бы во всём разобрался, но вот не могу справиться с поставленной задачей, решил прибегнуть к вашей помощи.

Как вы понимаете есть "заграбленый" html, мне нужно что бы в этом тексте ссылки типа

/saloon/auto/nissan/TIIDA/4042
/saloon/auto/subaru/LEGASY_B4/4022
/saloon/auto/mazda/AXELA/4010

и тд. превратились вот в такой формат:

/car.php?mark=nissan&model=TIIDA&id=4042
/car.php?mark=subaru&model=LEGASY_B4&id=4022
/car.php?mark=mazda&model=AXELA&id=4010

   
 
 автор: AcidTrash   (15.07.2008 в 16:45)   письмо автору
 
   для: PROUser   (15.07.2008 в 15:39)
 

Как-то так
<pre>
<?php
$t 
"/saloon/auto/nissan/TIIDA/4042
/saloon/auto/subaru/LEGASY_B4/4022
/saloon/auto/mazda/AXELA/4010"
;
$e preg_replace("#/saloon/auto/(.+)/(.+)/(.+)#isU","/car.php?mark=$1&model=$2&id=$3",$t);
print 
$e;
?>

   
 
 автор: PROUser   (15.07.2008 в 17:28)   письмо автору
 
   для: AcidTrash   (15.07.2008 в 16:45)
 

Огромное спасибо!
Приду домой, потестирую, теперь ещё один вопрос... Где почитать о значерии спец. символов "#isU", "(.+)", "#" и т.д.... Учебник по PHP 4 - Регулярные выражения (Учебник по PHP 4 - Регулярные выражения) здесь всё подробненько просмотрел, но ничего такого не нашел.

   
 
 автор: BinLaden   (15.07.2008 в 18:17)   письмо автору
 
   для: PROUser   (15.07.2008 в 17:28)
 

http://php.net/manual/ru/regexp.reference.php
http://php.net/manual/ru/book.pcre.php

   
 
 автор: PROUser   (15.07.2008 в 19:03)   письмо автору
 
   для: BinLaden   (15.07.2008 в 18:17)
 

Отлично, бальшое спасибо за базу знаний)

   
 
 автор: AcidTrash   (15.07.2008 в 23:01)   письмо автору
 
   для: PROUser   (15.07.2008 в 17:28)
 

>Где почитать о значерии спец. символов "#isU", "(.+)", "#"

# - это в моём примере ограничители регулярного выражения(delimiter).
i - модификатор, для игнорирования регистра(хотя в моем примере он не нужен, просто поставил на "автомате").
s - модификатор, метасимвол "точка" в шаблоне соответствует всем символам, включая перевод строк(возможно тоже не понадобится).
U - этот модификатор меняет жадность регулярного выражения.

   
 
 автор: PROUser   (21.07.2008 в 17:23)   письмо автору
 
   для: AcidTrash   (15.07.2008 в 23:01)
 

Спасибо, патихонечку разбираюсь, довольно интересно)

   
Rambler's Top100
вверх

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