DarkDaNTe » 2009.10.10 19:15

Всем привет. Подскажите как сделать регулярку, чтобы текст между <title> и </title> загонялся в переменную

AND » 2009.10.10 20:52

Код:

1
preg_match('/<title>(.*)<\/title>/i', $get, $title);
DarkDaNTe » 2009.10.10 22:18

спс

Chizh » 2010.01.08 12:36

Дело такое ) Нужно вернуть текст в том случае, если:
1. после текста не идет </span>.
2. Сам текст не находится между < и >.
То есть если взять строку <span style="..">, то шаблону будет соответствовать и span, и style. А этого быть не должно )

Gemorroj » 2010.01.08 12:56

я не понял вопроса.

Chizh » 2010.01.08 13:01

есть строка:
<span style="..">text</span>
<span style="..">text2</span>
text3
<span style="..">text4</span>
отсюда в общем нужно выбрать тот фрагмент текста, который еще не выделен span'ами. Этот текст может быть в произвольной части строки ) хоть в начале, хоть в середине....

Gemorroj » 2010.01.08 16:59

Код:

1
2
3
4
5
6
$str = '<span style="..">text</span>
<span style="..">text2</span>
text3
<span style="..">text4</span>';
 
echo preg_replace('/<span.+<\/span>/iU', '', $str);
Chizh » 2010.01.08 18:23

а. спасибо =) я так понял этот код удалит span и всё што в нем?
мне немного не так надо. хм..
$str = '<span style="..">text</span>
<span style="..">text2</span>
text3
<span style="..">text4</span>';
нужно из этого примера text3 найти и заменить на <span style="..">text3</span>. искомый текст может занимать любое место в строке. сам не понял че написал =/

Gemorroj » 2010.01.08 19:15

Код:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
$str = 'cc<span style="..">text</span>
<span style="..">text2</span>
text3
<span style="..">text4</span>vv';
 
$x = '';
$i = 0;
foreach (explode('<span', $str) as $f) {
$out = explode('</span>', $f);
 
if ($i > 0 && $out[0] != '') {
$x .= '<span' . $out[0] . '</span>';
} else if ($i == 0 && $out[0] != '') {
$x .= '<span>' . $out[0] . '</span>';
}
if (isset($out[1]) && $out[1] != '') {
$x .= '<span>' . $out[1] . '</span>';
}
$i++;
}
echo $x;
TLENS » 2010.01.11 07:56

Как использовать preg_match() ?
Когдато пытался роздуплить ее по немногу начал понимать ее в проверке, но сегодня решыл выводить нужный текст начала болеть голова.

Код:

1
lt;?//до етого брал так$text=preg_replace('/.*text1(.*?)text2(.*?)text3.*/','$1,$2',$text1);/*Но сами понимаете ето не вариант темболие если большой текстначал читать маны*/preg_match('/text1(.*?)text2(.*?)text3/',$text1,$text);echo $text[1].','.$text[2];

Но почему выводит тормассивом то нет например видел кода где сразу вставляют $text как текст а не массив Как оно работает можете обяснить? или хотябы на хорошие маны направить.

Gemorroj » 2010.01.11 12:41

маны все там же, http://ru.php.net/preg_match