Понедельников НЕТ!
Регистрация или вход Регистрация или вход Избранное на этом сайте | Главная | Анкета | Рекомендовать | Обратная связь | В избранное | Сделать домашней
Скачать SSDForums
Скачать SSDForums 1.0.1 Скачать SSDForums 1.0.1
Скачать SSDForums 1.0.1 SP1 Скачать SSDForums 1.0.1 SP1
Скачать SSDForums 1.0.1 SP2 Скачать SSDForums 1.0.1 SP2
SSD Forums 1.0.1 SP3 only Slaed 3.5 Pro SSD Forums 1.0.1 SP3 only Slaed 3.5 Pro
SSD Forums 1.0.1 SP4-beta only Slaed 4.1 Pro SSD Forums 1.0.1 SP4-beta only Slaed 4.1 Pro
Jewelry Сase Team
Скачать Ruby Chat 0.1.1 Скачать Ruby Chat 0.1.1
Меню
Главная
Форум
Магазин цифровых товаров

Новости
Подписка на новости
Темы новостей
Добавить новость

Каталог файлов
Карта файлового архива
Публикации

Опросы
Анкета пользователя
Чат

BestMaker
Викторина
Архив новостей
Карманный оракул
Поиск по сайту с помощью Яндекс
Поиск по сайту с помощью Google
Фото дня
Для души
Погода на 3 дня
IndexCat
IndexTop
Map_Pages
Форум -> Обо всём... -> вырезание тегов из текста
вырезание тегов из текста
rocksmart Дата: 27.08.2008, в 20:11 | Сообщение №1
rocksmart
Старожил
Пользователь №: 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
RRRinat
Активный участник
Пользователь №: 135
Сообщений: 112

Самый простой способ это юзать strip_tags
strip_tags('текст', 'список разрешенных тегов');
Serg_pnz Дата: 28.08.2008, в 10:00 | Сообщение №3
Serg_pnz
Администратор
Пользователь №: 1
Сообщений: 2243

rocksmart, грабилку делаешь? Регулярные выражения тебе в помощь.

Не все кальсоны с оторванными пуговицами - брюки. © Serg_pnz
"...даме водки? Это чистый спирт!" © кот Бегемот
otherside Дата: 28.08.2008, в 10:23 | Сообщение №4
otherside
Старожил
Пользователь №: 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
rocksmart
Старожил
Пользователь №: 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
rocksmart
Старожил
Пользователь №: 261
Сообщений: 330

или может массив можно вывести без var_dump(.....); как то?
rocksmart Дата: 02.09.2008, в 14:35 | Сообщение №7
rocksmart
Старожил
Пользователь №: 261
Сообщений: 330

кстати вот это выводит print_r($subject); без этого string(9)
Serg_pnz Дата: 02.09.2008, в 14:44 | Сообщение №8
Serg_pnz
Администратор
Пользователь №: 1
Сообщений: 2243

вар-дамп - это для вывода на экран, типа посмотреть
надо как-то так ($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
Serg_pnz
Администратор
Пользователь №: 1
Сообщений: 2243

1. В предыдущем скрипте я немного накосячил (исправлено)

2. Не знаю что нужно вставлять, в любом случае рекомендую:
2.1. Анализировать для каждого получаемого массива (у нас $t и $h) то, что отдает парсер через такой код
Код
1
echo "<pre>";
print_r($t);
echo "</pre>";

2.2. Не городить огород с переназначением переменных, это лишнее
Код
1
$subject[] = $t[0];


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
rocksmart
Старожил
Пользователь №: 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

Вы не можете ответить в тему анонимно, пожалуйста, войдите или зарегистрируйтесь!


Главная | Форум | Новости | Подписка на новости | Темы новостей | Добавить новость | Каталог файлов | Карта файлового архива | Публикации | Опросы | Анкета пользователя | Чат | BestMaker | Викторина | Архив новостей | Карманный оракул | Поиск по сайту с помощью Яндекс | Поиск по сайту с помощью Google | Фото дня | Для души | Погода на 3 дня | IndexCat | IndexTop | Map_Pages | Весь Оракул


Генерация страницы: 0.057 сек. и 16 запросов к базе данных за 0.027 сек.
Web site engine code is Copyright © 2006 by SLAED CMS. All rights reserved.