как вытащить текст между тегами 2?

Alex2003

Новичок
Хех. Для новичков.
1. сохраняем длину строки (пусть в $len).
2. меняя переменную (пусть $i) от 0 до $len...
2.1 Если символ в строке, с этим номером ($result{$i}) равен '>' , то запоминаем это место ($begin=$i)
2.2 Если символ в строке равен '<', то надо проверить - если переменная $begin установлена - значит, мы нашли нужный кусок кода. Вырезаем его и убираем переменую $begin (unset($begin); ). Вроде всё
 

Demiurg

Guest
вся проблема в том, что ты вбил себе в голову цикл, и считаешь, что все программы должны состоять из циклов
 

Alex2003

Новичок
Demiurg мне кажется, ты клонишь в сторону использования [m]strpos[/m], но ему это будет сложнее понять. На себе проверял.
 

sergadm

Новичок
PHP:
<?php
$str="<td align=right>75.71<td align=right>";
preg_match("/<.*?>(.*?)<.*?>/",$str,$res);
echo $res[1];
?>
хотя лучше так
PHP:
<?php
$str="<td align=right>75.71<td align=right>";
preg_match("/>(.*?)</",$str,$res);
echo $res[1];
?>
 

Demiurg

Guest
Alex2003
ничего сложного нет, если за него не писать.
 

SA739

Cogito, ergo sum
реги конечно хорошо :)
но если очень хочется в цикле
PHP:
$pos = $len = '';
for ($i = 0; $i < strlen($result); $i++) {
	if (($result[$i] == '>') && empty($pos)) {
		$pos = ++$i;
	}
	if (!empty($pos) && ($result[$i] == '<')) {
		if ($pos != $i) {
			$len = $i - $pos;
		} else {
			$pos = $len = '';
		}
	}
	if (!empty($pos) && !empty($len)) {
		echo substr($result,$pos,$len),'<br>';
		$pos = $len = '';
	}
}
в ообще для начала внимательно прочти это:
http://www.php.net/manual/ru/function.substr.php
и это:
http://www.php.net/manual/ru/function.strpos.php
потом подумай что ты делал не так..

ЗЫ. возможно я конечно где-то чтонить не учел, прошу сильно не пинать :)
 
Сверху