Jump to content
  • 0

Регулярные выражения


AKyHuH
 Share

Question

Здравствуйте, уважаемые!

Вопрос следующий, как с помощью регулярных выражений решить задачу:

Есть переменная, которая представляет из себя текст, в котором присутствуют html теги, ну например:

<div class="test">
<img src="img.jpg" class="img" />
<p>
Текст, куча текста, невероятная куча текста
</p>
</div>

необходимо весь текст, за исключением html тегов обрезать функцией, ну например substr до 10 символов..., т.е. чтобы получилось так:

<div class="test">
<img src="img.jpg" class="img" />
<p>
Текст, куч
</p>
</div>

вот как получить текст без тегов, до меня дошло:

$text = preg_replace("/<(.*?)>/","", $content);

получаем текст в чистом виде и можем его обрезать и вообще делать с ним, что хотим, а как его потом на свое место вернуть?:) хотя, скорее всего этот подход вообще неправильный и нужно подходить иначе, но как?

Link to comment
Share on other sites

6 answers to this question

Recommended Posts

  • 0

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

Link to comment
Share on other sites

  • 0
эту функцию я знаю, но проблема в том, что я не могу составил регулярное выражение... сейчас в регулярном выражении я получаю все теги и могу манипулировать ими (я их просто удаляю там), а надо получить текст и манипулировать им...

Попробуйте вот такое выражение:

|^>([a-zа-я0-9_=*?.+]+?)<$|i

Оно должно вытаскивать текст между тегами. Затем используйте preg_replace_callback(). В функции обратного вызова обрежьте аргумент $matches[1], который соответствует вхождению круглых скобок, и возвратите его.

Если прием не будет срабатывать, сообщите об этом в этой теме. Доведем до ума :)

Edited by alex_tihonko
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy