[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вырезать из текста
papa_serg
Здравствуйте, имеется скажем фаил 1.txt со следующим содержанием:
вот<br />
этот<br />
текст<br />
нужно<br />
остваить<br />
<!--
begin_auth_cache-->
123<br/>
<!--
end_auth_cache-->
вот<br />
этот<br />
текст<br />
нужно<br />
остваить<br />


И скрипт:
<?
function
GetPage() {
$file = fopen('1.txt','r');
while(!feof($file)){
$cp .= fgets($file);
}
fclose($file);
$pos_begin = strpos($cp,"<!--begin_auth_cache-->");
$pos_end = strpos($cp,"<!--end_auth_cache-->");
echo $cp;
}
GetPage();
?>


Подскажите, как через substr, вырезать всё, что между $pos_begin и $pos_end?



Спустя 3 минуты, 10 секунд (4.07.2011 - 15:41) tatti написал(а):
включая ключи или без?

Спустя 5 минут, 24 секунды (4.07.2011 - 15:46) papa_serg написал(а):
без них

Спустя 2 минуты, 1 секунда (4.07.2011 - 15:48) phz написал(а):
  $file = file_get_contents('1.txt');

# Определяем позицию строки, до которой нужно все отрезать
$pos = strpos($file, '<!--begin_auth_cache-->');

# Отрезаем все, что идет до нужной нам позиции
$file = substr($file, $pos);

# Находим позицию второй строки
$pos = strpos($file, '<!--end_auth_cache-->');

# Вырезаем нужное количество символов от нулевого
echo substr($file, 0, $pos);

Спустя 5 минут, 3 секунды (4.07.2011 - 15:53) papa_serg написал(а):
Не, то. Он наоборот вырезает всё, кроме того что нужно.
Нужно вырезать только то, что находиться между <!--begin_auth_cache--><!--end_auth_cache-->
Отсальное оставить.

Спустя 2 минуты, 5 секунд (4.07.2011 - 15:55) killer8080 написал(а):
а почему бы регулярку не использовать?

Спустя 7 минут, 42 секунды (4.07.2011 - 16:03) papa_serg написал(а):
killer8080, между этими 2мя комментариями может быть сотня строк <html> кода.
Или регулярка справиться?

Спустя 4 минуты, 3 секунды (4.07.2011 - 16:07) killer8080 написал(а):
да справиться,
а на сабстрингах как то так
<?php
function
GetPage() {
$file = fopen('1.txt','r');
while(!feof($file)){
$cp .= fgets($file);
}
fclose($file);
$pos_begin = strpos($cp,"<!--begin_auth_cache-->");
$pos_end = strpos($cp,"<!--end_auth_cache-->");
echo substr($cp, 0, $pos_begin).substr($cp, ($pos_end + strlen('<!--end_auth_cache-->')));
}
GetPage();
?>

Спустя 1 минута, 8 секунд (4.07.2011 - 16:08) killer8080 написал(а):
кстати, а если в контенте такой блок окажется не один? unsure.gif

Спустя 1 минута, 1 секунда (4.07.2011 - 16:09) papa_serg написал(а):
killer8080, спасибо. Один =)

Спустя 10 секунд (4.07.2011 - 16:09) Zerstoren написал(а):
Мб данные лучше хранить в XML, JSON, Serialize

они отлично справятся с вашими задачами)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.