Не знаю с какой стороны даже подойти ... regerxp или еще че то ...

Сенсей

Новичок
Не знаю с какой стороны даже подойти ... regerxp или еще че то ...

Имеем большей текст ...

в нем может много раз встречаться <--pagebreak-->

нужно удалить первый и последний <--pagebreak-->


то есть если был текст :

<--pagebreak-->1111<--pagebreak-->11111<--pagebreak-->1111<--pagebreak-->
ne нужно то б был :

1111<--pagebreak-->11111<--pagebreak-->1111
то есть алогиритм такой - если перед <--pagebreak--> нет текста - удаляем этот <--pagebreak--> , + если после <--pagebreak--> нет текста - тоже удаляем этот <--pagebreak-->

Остальной текст и <--pagebreak--> которые встречаются в нем не трогать....


Как подойти к этой проблеме ? Что юзать ? Регексп .. preg или еще что ... я в них ниче не понимаю ...

Наведите на правильный путь ? А там уж как нибудь ...
 

gun2rin

Новичок
Приблизительно так:
Если первые strlen('<--pagebreak-->') символов = '<--pagebreak-->' => удаляем. И.

Если
substr($text,strlen($text)-strlen('<--pagebreak-->',strlen('<--pagebreak-->))='<--pagebreak-->' тоже удаляем.
 

Сенсей

Новичок
Всем спосибо , идею понял :)

-~{}~ 12.04.04 19:13:

Вот сделал ..

PHP:
        $counttext = strlen($text);
        $findme = '<--pagebreak-->';
		$pos = strpos($text, $findme);
        if($pos == "0") {
        	$firsttext = substr("$text", 15);
        } else {
        	$firsttext = $text;
        }
        $countfirsttext = strlen($firsttext);
        $aaa = $countfirsttext - 15;
        $rest = substr("$firsttext", $aaa);
        $pos2 = strpos($rest, $findme);
   		
   		if($pos2 === False) {
        	$newtext = $firsttext;
        } else {
        	$newtext = substr("$firsttext", 0, $aaa);
        }	
		echo $newtext;
Не слишком ли большой код ?
 

Lav

Guest
IMHO этого должно хватить.
PHP:
$text = preg_replace('~^(<--pagebreak-->)*~', '', $text);
$text = preg_replace('~(<--pagebreak-->)*$~', '', $text);
З.Ы. Пробелы какие-то левые в регэкспах вылезают - игнорируй их.
 

SiMM

Новичок
Автор оригинала: Lav
IMHO этого должно хватить.
PHP:
$text = preg_replace('~(<--pagebreak-->)*$~', '', $text);
"Многострочники" (а речь, скорее всего, именно о них) не учитываются. Да и . перед *, имхо, не помешала бы.
2Сенсей, за подсказкой прежде всего лезь в ман [m]PCRE.pattern.modifiers[/m]
 

valyala

Новичок
Не слишком ли большой код ?
Нормальный. Вот так будет короче ;) :
PHP:
function strip_pagebrakes($text, $findme = '<--pagebreak-->') {
    $findme = preg_quote($findme);
    return preg_replace('/^(' . $findme . ')+|(' . $findme . ')+$/', '', $text);
}
 

Сенсей

Новичок
valyala Lav
ваши варианты работают :) одназначно они лучше моего :)
спасибо ...
 
Сверху