Форум -> Обо всём... -> вырезание тегов из текста |
вырезание тегов из текста |
---|
rocksmart | Дата: 27.08.2008, в 20:11 | Сообщение №1 |
СтарожилПользователь №: 261 Сообщений: 330
| нужна помощь, так как сам в этом я 0.
Есть некий текст:
<b class='news_title'>"Cкaй Линк" oткpывaeт тapиф "Бeзлимитный – oблacтнoй"</b> <span class='news_date'>27.08.2008</span>
<p class='news_text'>Компания «Скай Линк» открывает для подключений в Москве новый тарифный план с зональной тарификацией передачи данных - «Безлимитный – областной». Тариф, подключения к которому начнутся с 1 сентября 2008 года, включает <br /><span class='news_author'>Источник: Mobil.ru</span></p><hr class='news_hr'>
нужно вырезать текст между этими тегами:
$title="Cкaй Линк" oткpывaeт тapиф "Бeзлимитный – oблacтнoй"
$date=27.08.2008
$hometext=Компания «Скай Линк» открывает для подключений в Москве новый тарифный план с зональной тарификацией передачи данных - «Безлимитный – областной». Тариф, подключения к которому начнутся с 1 сентября 2008 года, включает
$avtor=Источник: Mobil.ru |
|
|
|
RRRinat | Дата: 27.08.2008, в 20:31 | Сообщение №2 |
Активный участникПользователь №: 135 Сообщений: 112
| Самый простой способ это юзать strip_tags
strip_tags('текст', 'список разрешенных тегов'); |
|
|
Serg_pnz | Дата: 28.08.2008, в 10:00 | Сообщение №3 |
АдминистраторПользователь №: 1 Сообщений: 2242
| rocksmart, грабилку делаешь? Регулярные выражения тебе в помощь. | Не все кальсоны с оторванными пуговицами - брюки. © Serg_pnz
"...даме водки? Это чистый спирт!" © кот Бегемот |
|
|
otherside | Дата: 28.08.2008, в 10:23 | Сообщение №4 |
СтарожилПользователь №: 22 Сообщений: 387
| Вот кусочек кода, который вырезает из новости (Модуль News) картинки и ссылки:
Код | 1
| $bodytext = (!$bodytext) ? "".$hometext."".$fields."" : "".$hometext."<br />".$bodytext."".$fields."";
$bodytext = preg_replace('#<img(.*?)>#si','',$bodytext);
$bodytext = preg_replace('#<a(.*?)>#si','',$bodytext); |
Я это использую в PDA версии сайта. Может и не правильно, однако работает. Можеи и тебя на какие нитьь мысли натолкнет
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Отредактированно otherside 28.08.2008 г. в 10:24:32 |
|
|
rocksmart | Дата: 02.09.2008, в 14:04 | Сообщение №5 |
СтарожилПользователь №: 261 Сообщений: 330
| Код | 1
| preg_match_all("#(<b class='news_title'>)(.+?)(</b>)#is",$page,$t);
preg_match_all("#(<p class='news_text'>)(.+?)(<hr class='news_hr'>)#is",$page, $h);
$subject[] = $t[0];
$hometext[] = $h[0];
$aid = "ura";
var_dump($subject);
var_dump($hometext);
$db->sql_query("INSERT INTO ".$prefix."_stories VALUES (NULL, '0', '$postname', '$subject', now(), '$hometext', '$bodytext', '$field', '0', '0', '$topic', '0', '$alanguage', '0', '0', '0', '0', '2')"); |
где $page это файл из которого надо вытащить информацию :
Код | 1
| <b class='news_title'>заголовок</b> <span class='news_date'>02.09.2008</span><p class='news_text'>описание<span class='news_author'>Источник: хрен.ru.ru</span></p><hr class='news_hr'>
<b class='news_title'>заголовок-2</b> <span class='news_date'>02.09.2008</span><p class='news_text'>описание-2<span class='news_author'>Источник: хрен.ru</span></p><hr class='news_hr'> |
вот это: var_dump($subject); выводит это:
array(1) { [0]=> array(10) { [0]=> string(9) ""заголовок" [1]=> string(9) "заголовок-2"}}
вот это: var_dump($hometext); выводит это:
array(1) { [0]=> array(10) { [0]=> string(9) ""описание" [1]=> string(9) "описание-2"}}
так вот вопрос как записать это все в базу и что бы было соответствие заголовок=описание и заголовок-2=описание-2?
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Отредактированно rocksmart 02.09.2008 г. в 14:10:18 |
|
|
rocksmart | Дата: 02.09.2008, в 14:11 | Сообщение №6 |
СтарожилПользователь №: 261 Сообщений: 330
| или может массив можно вывести без var_dump(.....); как то? |
|
|
rocksmart | Дата: 02.09.2008, в 14:35 | Сообщение №7 |
СтарожилПользователь №: 261 Сообщений: 330
| кстати вот это выводит print_r($subject); без этого string(9) |
|
|
Serg_pnz | Дата: 02.09.2008, в 14:44 | Сообщение №8 |
АдминистраторПользователь №: 1 Сообщений: 2242
| вар-дамп - это для вывода на экран, типа посмотреть
надо как-то так ($m1, $m2 и т.д. - это твои массивы)
Код | 1
| foreach($m1 as $key => $val) {
echo $m1[$key]."br".$m2[$key];
} |
только пишешь не "эхо", а свой инсерт, расставляя массивы по местам
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Отредактированно Serg_pnz 02.09.2008 г. в 15:18:13 | Не все кальсоны с оторванными пуговицами - брюки. © Serg_pnz
"...даме водки? Это чистый спирт!" © кот Бегемот |
|
|
Serg_pnz | Дата: 02.09.2008, в 15:23 | Сообщение №9 |
АдминистраторПользователь №: 1 Сообщений: 2242
| 1. В предыдущем скрипте я немного накосячил (исправлено)
2. Не знаю что нужно вставлять, в любом случае рекомендую:
2.1. Анализировать для каждого получаемого массива (у нас $t и $h) то, что отдает парсер через такой код Код | 1
| echo "<pre>";
print_r($t);
echo "</pre>"; |
2.2. Не городить огород с переназначением переменных, это лишнее
3. Ну и собственно как всё должно выглядеть
Код | 1
| <?php
$page = " <b class='news_title'>заголовок</b> <span class='news_date'>02.09.2008</span><p class='news_text'>описание<span class='news_author'>Источник: хрен.ru.ru</span></p><hr class='news_hr'><b class='news_title'>заголовок-2</b> <span class='news_date'>02.09.2008</span><p class='news_text'>описание-2<span class='news_author'>Источник: хрен.ru</span></p><hr class='news_hr'>";
preg_match_all("#(<b class='news_title'>)(.+?)(</b>)#is",$page,$t);
preg_match_all("#(<p class='news_text'>)(.+?)(<hr class='news_hr'>)#is",$page, $h);
echo "Смотрим результаты:";
echo "<pre>";
print_r($t[0]);
print_r($h[2]);
echo "</pre>";
echo "Выводим результаты для инсерта (щас я буду выводить через echo, но там поставите запрос):";
foreach($t[0] as $key => $val) {
echo "<br><br>".$t[0][$key]."<br>".$h[2][$key];
}
?> |
Получаем такую "картинку"
Цитата | Смотрим результаты:
Array
(
[0] => заголовок
[1] => заголовок-2
)
Array
(
[0] => описаниеИсточник: хрен.ru.ru
[1] => описание-2Источник: хрен.ru
)
Выводим результаты для инсерта (щас я буду выводить через echo, но там поставите запрос):
заголовок
описаниеИсточник: хрен.ru.ru
заголовок-2
описание-2Источник: хрен.ru |
| Не все кальсоны с оторванными пуговицами - брюки. © Serg_pnz
"...даме водки? Это чистый спирт!" © кот Бегемот |
|
|
rocksmart | Дата: 02.09.2008, в 16:05 | Сообщение №10 |
СтарожилПользователь №: 261 Сообщений: 330
| то есть вот так
Код | 1
| $postname = "uratera";
$subject = text_filter($t[0][$key]);
$hometext = nl2br(text_filter($h[2][$key], 2));
$topic = 4;
$bodytext ="";
$db->sql_query("INSERT INTO ".$prefix."_stories VALUES (NULL, '0', '$postname', '$subject', now(), '$hometext', '$bodytext', '$field', '0', '0', '$topic', '0', '$alanguage', '0', '0', '0', '0', '1')"); |
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Отредактированно rocksmart 02.09.2008 г. в 16:39:09 |
|
|
|
Вы не можете ответить в тему анонимно, пожалуйста, войдите или зарегистрируйтесь!
|