Автор Тема: можно ли вставить только часть страницы?  (Прочитано 7512 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Eugene2001

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 48
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Пример файла из которого надо выдрать кусок:
=======

текст0


текст1


13333333333333333


вфывыфыфввыфвыф


текст2


текст3


=======

участники форума, подскажите, пожалуйста, можно ли взять из этого файла часть от "

текст1

" до "

текст2

" (именно указав начало и конец отрывка - середина будет меняться и указать точно весь кусок до последней буквы невозможно - не меняются только  "

текст1

" и "

текст2

" ) и вставить ТОЛЬКО ее в другой файл (с помощью include наверное)

или это возможно только вырезая ненужные части с помощью replace?



с уважением,
Евгений

Оффлайн Tronyx

  • Модератор
  • Ветеран
  • *****
  • Сообщений: 826
  • +0/-0
  • 2
    • Просмотр профиля
можно ли вставить только часть страницы?
« Ответ #1 : 04 Августа 2002, 08:42:48 »
Цитировать
или это возможно только вырезая ненужные части с помощью replace?


// $page_text - текст страницы, его загружай как хочешь.
$patr=eregi_replace("<p>текст1</p>(.+)<p>текст2</p>""\\\\1"$page_text);
С уважением, Владимир Гончаренко - COPI# 93
Ролевая онлайн игра

Оффлайн Covex

  • Только встал и уже устал.
  • Постоялец
  • ***
  • Сообщений: 208
  • +0/-0
  • 2
    • Просмотр профиля
можно ли вставить только часть страницы?
« Ответ #2 : 04 Августа 2002, 09:30:28 »
Цитировать
// $page_text - текст страницы, его загружай как хочешь.
$patr=eregi_replace("

текст1

(.+)

текст2

", "\\1", $page_text);
что-то меня терзают сомнения...
Цитировать
из этого файла часть от "

текст1

" до "

текст2

" (именно указав начало и конец отрывка - середина будет меняться и указать точно весь кусок до последней
Tronyx
 зачем replace? если можно просто текст  достать... почему eregi?  в мане пишут,  что преги быстрее...$page_text="<p>текст</p> страницы, <p>его</p> загружай как хочешь.";
 echo 
$patr=preg_match("/<p>текст<\\/p>(.+)<p>его<\\/p>/"$page_text$rez);
echo 
"<hr>".$rez[1];

это выведет "страницы, " в rez[0] находится "

текст

страницы,

его

"

Оффлайн Tronyx

  • Модератор
  • Ветеран
  • *****
  • Сообщений: 826
  • +0/-0
  • 2
    • Просмотр профиля
можно ли вставить только часть страницы?
« Ответ #3 : 04 Августа 2002, 09:51:22 »
Цитировать
Tronyx
зачем replace? если можно просто текст достать... почему eregi? в мане пишут, что преги быстрее...

Да я знаю что преги быстрее будут, но мне легче с регами, а преги всё же нужно подъучить, это я понимаю.
С уважением, Владимир Гончаренко - COPI# 93
Ролевая онлайн игра

Оффлайн Covex

  • Только встал и уже устал.
  • Постоялец
  • ***
  • Сообщений: 208
  • +0/-0
  • 2
    • Просмотр профиля
можно ли вставить только часть страницы?
« Ответ #4 : 04 Августа 2002, 10:16:52 »
$page_text="<p>текст</p> страницы, <p>его</p> загружай как хочешь.";
eregi("<p>текст</p>(.+)<p>его</p>"$page_text$rez);
echo 
"<hr>".$rez[1];
это если  ереги

Оффлайн Eugene2001

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 48
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
можно ли вставить только часть страницы?
« Ответ #5 : 04 Августа 2002, 13:09:19 »
преги, ереги... у меня уровень понимания все-таки еще не тот...
-------------------

мне надо в

$page_text="

текст

страницы,

его

загружай как хочешь.";

скопировать весь текст страницы?

--------------------------

попробую написать побдробнее чтобы мне хотелось сделать:

====================
у меня есть страница http://www.site.ru/page.php
в нее надо вставить части страницы http://www.site.ru/page2.html

привожу текст страницы page2.html:
------------

текст0


13dsafdsfds333333


текст1


1333333333sdfdsf3


текст2


1333333dsdssdd333


текст3


1dsasad3333333333


текст4


вфывыфыфввыфвыф


текст5


вфывыxcvvcыфвыф


текст6


вфdsadsaasыфвыф


текст7


вфывыфыdsaasadф


текст8


----------

мне нужно вытащить из этой страницы и вставить в http://www.site.ru/page.php два кусочка page2.html - первый с "

текст1

" до "

текст2

"

и второй кусок с "

текст4

" до "

текст6

"

=================
подскажите, пожалуйста, как мне ВЫРЕЗАТЬ эти два кусочка из page.html и ВСТАВИТЬ и в нужные место на страницу page.php?

содержание page.html все время меняется - неизменными остаются только 4 фразы, по которым я собираюсь вырезать эти кусочки:

"

текст1

", "

текст2

", "

текст4

", "

текст6

".




с уважением,
Евгений

Оффлайн Eugene2001

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 48
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
можно ли вставить только часть страницы?
« Ответ #6 : 04 Августа 2002, 13:36:50 »
я попробовал вставить include:

$page_text="include(\'http://www.site.ru/page.html\')";
echo $patr=preg_match("MY MKPDKLDSKDSJK(.+)DJJKDJKJKD", $page_text, $rez);
echo "
".$rez[1];
?>

чтобы попытаться выдрать из этого кода (прижу весь текст страницы page.html):
=========
dsalkjjklkldsa jkndsajkdsa oijkdasojkdsa
("MY MKPDKLDSKDSJK dsajjojdsaj
jdsjkldsa DJJKDJKJKD
=========
текст от MY MKPDKLDSKDSJK до DJJKDJKJKD

--------------
но браузер выдал мне ошибку:
Warning: Unknown modifier \'M\' in /users/.../site/page.php on line 24

Line 24 - это:

echo $patr=preg_match("MY MKPDKLDSKDSJK(.+)DJJKDJKJKD", $page_text, $rez);

==============
и еще... а чтобы выдрать второй кусочек из этой страницы, надо опять вставлять весь этот код и он будет ЗАНОВО обрабатывать всю страницу page.html?


помогите, пожалуйста, разобраться


с уважением,
Евгений

Оффлайн Covex

  • Только встал и уже устал.
  • Постоялец
  • ***
  • Сообщений: 208
  • +0/-0
  • 2
    • Просмотр профиля
можно ли вставить только часть страницы?
« Ответ #7 : 04 Августа 2002, 13:51:14 »
$filename "page2.html";
$fd fopen ($filename"rb");
$contents fread ($fdfilesize ($filename));
fclose ($fd);
preg_match("/<p>текст1<\\/p>(.+)<p>текст2<\\/p>/is"$contents$rez1);
preg_match("/<p>текст4<\\/p>(.+)<p>текст6<\\/p>/is"$contents$rez2);
echo 
$rez1[1];
echo 
$rez2[1];
этот код должен быть в page.php
echo $rez1[1]; echo $rez2[1] необходимо разместить в "нужных" местах,  но ниже fread и  preg_match

Или так еще можно выражение переписать
preg_match("/<p>текст1<\\/p>(.+)<p>текст2<\\/p>.+<p>текст4<\\/p>(.+)<p>текст6<\\/p>/is"$contents$rez1);
echo 
$rez1[1];
echo 
$rez1[2];
« Последнее редактирование: 04 Августа 2002, 14:15:09 от Covex »

Оффлайн Covex

  • Только встал и уже устал.
  • Постоялец
  • ***
  • Сообщений: 208
  • +0/-0
  • 2
    • Просмотр профиля
можно ли вставить только часть страницы?
« Ответ #8 : 04 Августа 2002, 14:10:36 »
Цитировать
$page_text="include(\'http://www.site.ru/page.html\')";
надо RTFM про инклюд, да и про пхп вообще...
Цитировать
$patr=preg_match("MY MKPDKLDSKDSJK(.+)DJJKDJKJKD",
изменяя не разрушай

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
можно ли вставить только часть страницы?
« Ответ #9 : 04 Августа 2002, 15:59:25 »
Eugene2001
http://php.spb.ru
http://phpclub.net/index.phtml?m=7
http://www.webscript.ru/stories.php3?topic=6
http://phpclub.net/talk/showthread.php?s=&threadid=21723 (и там по всем ссылкам)

Все это читаешь, разбираешь, обдумываешь, тестируешь и потом если что не понятно задаешь вопросы.
Или книгу по php купи.

ЗЫ
Не обижайся, но ты задаешь простейшие вопросы. И явно видно что ты не понимаешь что и как работает.
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Unregistered

  • Гость
можно ли вставить только часть страницы?
« Ответ #10 : 05 Августа 2002, 16:31:48 »
спасибо, всем, кто помогал... буду разбираться...


с уважением,
Евгений

Оффлайн я...

  • scum of the earth
  • Старожил
  • ****
  • Сообщений: 293
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.vlad.myths.ru
можно ли вставить только часть страницы?
« Ответ #11 : 05 Августа 2002, 17:23:04 »
изврат, но приятно =)))

function ret_needed_str_arr($begin_string="<p>текст1</p>",$end_string="<p>текст2</p>")
{
 
$content=file("your.file");
 
$opened=0;
 for(
$i=0;$i<count($content);$i++)
 {
  if (
$opened==AND $content[$i]==$begin_string)
  {
    
$opened==1;
  }
  elseif(
$opened==AND $content[$i]==$end_string)
  {
    
$opened==0;
  }
  elseif(
$opened==AND $content[$i]!=$end_string)
  {
   
$ret_array.=$content[$i];
  }
 }
 return(
$ret_array);
}
...вот такой я весёлый зверёк...
 Home page

Оффлайн Доктор

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 487
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
можно ли вставить только часть страницы?
« Ответ #12 : 05 Августа 2002, 19:17:32 »
лучше использовать не count($array), а sizeof($array)

Оффлайн Covex

  • Только встал и уже устал.
  • Постоялец
  • ***
  • Сообщений: 208
  • +0/-0
  • 2
    • Просмотр профиля
можно ли вставить только часть страницы?
« Ответ #13 : 05 Августа 2002, 23:51:21 »
я... а потести, ради прикола, что быстрее...

Оффлайн Eugene2001

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 48
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
можно ли вставить только часть страницы?
« Ответ #14 : 06 Августа 2002, 00:03:59 »
я тут нашел скрипт... который тоже работает... причем отменно и просто:

=====================


$url = "http:// URL TO GRAB";
$unique_start = "Unique html code to start grabbing";
$unique_end = "Unique html code to end grabbing";

ini_set(\'max_execution_time\', \'0\');
flush ();
$fd= fread(fopen("$url", "r"), 100000);

if ($fd)
{
$start= strpos($fd, "$unique_start");
$finish= strpos($fd, "$unique_end");
$length= $finish-$start;
$code=Substr($fd, $start, $length);
}


// $code = preg_replace("new code", "old code", $code);
// uncomment the above line to edit the output

echo $code;
flush ();
?>

====================

вот только у меня вопрос... можно ли его модифицировать, чтобы он выдирал ВСЕ удовлетворяющие условиям кусочки, а не брал только первый подходящий кусочек и завершал свою работу...

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28