Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / PHP: вырезать часть текста. Сделать "красивше" чем делаю - как? / 9 сообщений из 9, страница 1 из 1
19.04.2012, 12:28:24
    #37760768
AlexSSSS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP: вырезать часть текста. Сделать "красивше" чем делаю - как?
Дано:
На входе строка вида:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
<question>
	<const>
		2101
	</const>
	<displayname>
		Модель
	</displayname>
</question>


На выходе надо получить то, что между <const> и </const>
Пока делаю так:
1. Ищу второе включение >
2. Удаляю с первой по эту позицию.
3. Ищу первое включение <
4. Удаляю с нее до конца.
Вопрос: а как-то изящее это можно сделать?
...
Рейтинг: 0 / 0
19.04.2012, 12:48:10
    #37760812
ScareCrow
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP: вырезать часть текста. Сделать "красивше" чем делаю - как?
preg_match('#<const>(.*)</const>#is', $text, $matches)
...
Рейтинг: 0 / 0
19.04.2012, 13:01:24
    #37760837
Ренат
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP: вырезать часть текста. Сделать "красивше" чем делаю - как?
...
Рейтинг: 0 / 0
19.04.2012, 13:34:10
    #37760908
r u
r u
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP: вырезать часть текста. Сделать "красивше" чем делаю - как?
AlexSSSS,

зачем привязываться к второму вхождению > когда можно к самому тегу:
Код: php
1.
2.
3.
$p1 = strrpos($str,'<const>')+strlen('<const>');
$p2 = strpos($str,'</const>');
$const = trim(substr($str, $p1, $p2-$p1));
...
Рейтинг: 0 / 0
19.04.2012, 14:23:43
    #37761044
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP: вырезать часть текста. Сделать "красивше" чем делаю - как?
А если тегов будет несколько, то велосипеду придется приделать еще колес.
...
Рейтинг: 0 / 0
19.04.2012, 14:44:36
    #37761106
Ренат
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP: вырезать часть текста. Сделать "красивше" чем делаю - как?
HettА если тегов будет несколько, то велосипеду придется приделать еще колес.
вот вот, почему нельзя ее распарсить это как XML и использовать в тупую индесацию?? Пару строчек, и универсальней становиться.
...
Рейтинг: 0 / 0
20.04.2012, 05:47:34
    #37762217
r u
r u
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP: вырезать часть текста. Сделать "красивше" чем делаю - как?
HettА если тегов будет несколько, то велосипеду придется приделать еще колес.
тег один - это условие начальной задачи!
если тегов будет несколько - значит полностью меняется входной формат и следовательно конечно надо менять логику обработки. это касается любого варианта: с регуляркой, и с strpos или c использованием готового xml-парсера.
...
Рейтинг: 0 / 0
20.04.2012, 05:51:20
    #37762218
r u
r u
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP: вырезать часть текста. Сделать "красивше" чем делаю - как?
Ренатвот вот, почему нельзя ее распарсить это как XML
принцип KISS
...
Рейтинг: 0 / 0
20.04.2012, 09:55:45
    #37762380
Edd.Dragon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP: вырезать часть текста. Сделать "красивше" чем делаю - как?
r uэто касается любого варианта: с регуляркой, и с strpos или c использованием готового xml-парсера.
Регулярки это касается очень условно. Ею без проблем найти все вхождения. Или дополнить до нескольких разных тегов.
Вручную strpos-ом - это как записки из камня вытесывать при наличии карандаша и бумаги.
Ну а XML раскладывать - это если сервер курит без дела и больше нечем его занять (в упор не понимаю, когда в подобных задачках аля "найти кусок текста" предлагают парсить в древовидную структуру, как-будто нам потом все это редактировать).

Средства шаблонного поиска/замены как раз ведь для таких задачек и придуманы.
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / PHP: вырезать часть текста. Сделать "красивше" чем делаю - как? / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]