Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Найти весь текст в html 
:(
    Опции темы
neoks
Дата 12.4.2013, 10:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 425
Регистрация: 5.7.2010

Репутация: нет
Всего: 1



Забыл напрочь эти регулярные выражения и не могу теперь составить правильно, подскажите как можно вытащить только текст из html страницы.
Сейчас полагаю что будет много лишнего текст таких как скрипты, стили и тд, полагаю что нужно вытаскивать между определенными тегами.
Список тегов составить не проблема )) но не могу вытащить текст даже из определенного тега

Вот пример
Код

preg_replace_callback("/<a[^>]*>(.+?)</a>/si",'getTexts',$file);


Не знаю, и так и сяк не могу вытащить текст, подскажите как выдернуть только текст из тега

Пробовал еше такой вариант 

Код

preg_replace_callback("/<a[^>]*>(\w+)</a>/si",'getTexts',$file);


Вроде ему сказал вытаскивать только из тега <a> а он вытащил даже из тега <script> 

Подскажите что я неправильно делаю)
PM MAIL   Вверх
s0lman
Дата 12.4.2013, 11:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и лохматый
**


Профиль
Группа: Участник
Сообщений: 637
Регистрация: 1.11.2007
Где: Ukraine

Репутация: 9
Всего: 29



Чтобы просто выдрать текст из ссылки подойдет
Код

/^\<a[^>]*>([^<]*)\<\/a>$/



--------------------
Когда я уже выучусь на волшебника? :(
PM   Вверх
neoks
Дата 12.4.2013, 11:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 425
Регистрация: 5.7.2010

Репутация: нет
Всего: 1



Ну вот вроде нет нечего проше, но увы все также выдергивает все подряд, полюбе какой там я тег указал, ишет все хз почему ))
PM MAIL   Вверх
s0lman
Дата 12.4.2013, 11:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и лохматый
**


Профиль
Группа: Участник
Сообщений: 637
Регистрация: 1.11.2007
Где: Ukraine

Репутация: 9
Всего: 29



пример исходного хтмл ?


--------------------
Когда я уже выучусь на волшебника? :(
PM   Вверх
neoks
Дата 12.4.2013, 13:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 425
Регистрация: 5.7.2010

Репутация: нет
Всего: 1



Вот примерчик, к примеру не могу выдернуть из <th> ))
Код

function getTexts($a){
    echo $a[1];
}

$html = <<<HTML

<script type='text/javascript'>
/* <![CDATA[ */
    var dropdown = document.getElementById("cat");
    function onCatChange() {
        if ( dropdown.options[dropdown.selectedIndex].value > 0 ) {
            location.href = "/site/?cat="+dropdown.options[dropdown.selectedIndex].value;
        }
    }
    dropdown.onchange = onCatChange;
/* ]]> */
</script>

</li><li class="widgets"><h2 class="mainhead">&nbsp;</h2><div id="calendar_wrap"><table id="wp-calendar">
    <caption>Апрель 2013</caption>
    <thead>
    <tr>
        <th scope="col" title="Понедельник">Пн</th>
        <th scope="col" title="Вторник">Вт</th>
        <th scope="col" title="Среда">Ср</th>
        <th scope="col" title="Четверг">Чт</th>
        <th scope="col" title="Пятница">Пт</th>
        <th scope="col" title="Суббота">Сб</th>
        <th scope="col" title="Воскресенье">Вс</th>
    </tr>
    </thead>

    <tfoot>
    <tr>
        <td colspan="3" id="prev"><a href="_2013_03_" title="Просмотреть записи за Март 2013">&laquo; Март</a></td>
        <td class="pad">&nbsp;</td>
        <td colspan="3" id="next" class="pad">&nbsp;</td>
    </tr>
    </tfoot>

    <tbody>
    <tr><td><a hr
HTML;
preg_replace_callback("/^\<th[^>]*>([^<]*)\<\/th>$/",'getTexts',$html);

PM MAIL   Вверх
patap
Дата 12.4.2013, 18:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 893
Регистрация: 7.5.2005
Где: Украина, Зп

Репутация: 26
Всего: 40



ну ты совсем не то замутил с th

как-то так
Код

$html = preg_replace("/<th[^>]*>([^<]*)<\/th>/",'$1', $html);


Это сообщение отредактировал(а) patap - 12.4.2013, 18:59


--------------------
На боку кобура болталась, сзади шашка отцовская звякала. 
Впереди меня все хохотало, а позади все плакало (с)
PM MAIL ICQ   Вверх
s0lman
Дата 12.4.2013, 19:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и лохматый
**


Профиль
Группа: Участник
Сообщений: 637
Регистрация: 1.11.2007
Где: Ukraine

Репутация: 9
Всего: 29



Так уберите из паттерна признаки начала и конца строки

Код

/\<th[^>]*>([^<]*)\<\/th>/


Добавлено через 35 секунд
patap, опередил)


--------------------
Когда я уже выучусь на волшебника? :(
PM   Вверх
neoks
Дата 12.4.2013, 21:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 425
Регистрация: 5.7.2010

Репутация: нет
Всего: 1



я решил все таки обойтись другим вариантом, сначала спарсить все html теги и заменить типа ]0[ и затем спарсить текст в этих тегах ]0[ ну и сделать перевод и обратно вернуть теги, покамись все работает славно ))
PM MAIL   Вверх
cia
Дата 14.4.2013, 12:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 207
Регистрация: 15.1.2007

Репутация: 4
Всего: 4



Цитата

Вроде ему сказал вытаскивать только из тега <a> а он вытащил даже из тега <script> 

(.+?) - это жадный паттерн, он заберёт всё по максимуму. Надо использовать (.*?) или так: ([^<]+)
s0lman правильно пишет, так будет работать, только угловые скобки экранировать не обязательно.

PM WWW ICQ   Вверх
patap
Дата 16.4.2013, 19:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 893
Регистрация: 7.5.2005
Где: Украина, Зп

Репутация: 26
Всего: 40



Цитата(cia @  14.4.2013,  11:47 Найти цитируемый пост)
(.+?) - это жадный паттерн

он не жадный, он как минимум одно совпадение ожидает, в отличии от .*?, который - ноль и больше

а жадный .+ и .*


--------------------
На боку кобура болталась, сзади шашка отцовская звякала. 
Впереди меня все хохотало, а позади все плакало (с)
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0472 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.