Jump to content
php.lv forumi

Paņemt no citas lapas daļēju saturu (include/get_content)


kash

Recommended Posts

Labrit.

Es velos realizet sekojosu ideju:

 

Man ir Html lapa kuras saturs tiek automatiski atjaunots izmantojot ieprieksh izveidotu template. sauksim to par index1.html

un tad ir divas citas lapas, kurās es vēlos ievietod kādu konkrētu daļu no index1.html satura.

 

 

piemeram:

 

index1.html satur a, b, c, d

 

es velos index2 lapa ievietot a

es velos index3 lapā ievietot c

 

index2 un index3 formatam nav nozimes, tas var but gan html, gan php u.c.

 

 

lidz sim esmu ticis sitik talu, bet neesmu drošs, ka tas ir pareizais celš, jo te janorada RANGE baitos, savukart saturs ir mainiigs tatad neder..

 

<?php

//Set it to fetch

$context=array('http' => array ('header'=> 'Range: bytes=1500-12999', ),);

$xcontext = stream_context_create($context);

//Now put the response to $str

$str=file_get_contents("test1.html",FALSE,$xcontext);

//print str

echo $str;

?>

 

 

 

 

Lūdzu palīdziet tikt ar šito galā, jo pats nespēju saprast risinājumu..!

Link to comment
Share on other sites

Parasti to dara ievelkot visu lapas saturu (bez nekāda tava $context un FALSE argumenta file_get_contents funkcijai). Un pēc tam ar regulārām izteiksmēm atrodot un izvelkot vajadzīgo lapas tekstu - paskaties, piemēram, preg_match_all funkciju.

Link to comment
Share on other sites

Rezultāts:

 

http://www.notepad.lv/sa/items.php?q=nokia

 

Izvelkam preces no salidzini.lv

 

Skripts, bez ievades formas:

 

Items.php

 

<?php

 

$q = $_GET['q'];

$cn = $_GET['cn'];

$cl = $_GET['cl'];

 

$salidzini=file_get_contents('http://www.salidzini.lv/search.php?q=' . urlencode($q) .'&cn='.$cn .'&cl='.$cl );

 

$html="<table width='100%'><tr><td>";

$htmlS=explode($html,$salidzini);

$html_explode=explode("<div style=\"padding-bottom: 50px;\"></div>",$htmlS[1]);

$body=$html.$html_explode[0];

 

echo '<meta http-equiv="Content-Type" content="text/html; charset=utf-8">';

echo '<link rel=stylesheet type="text/css" href="http://www.salidzini.lv/css/items.css?ver=131108">';

 

 

echo str_replace("http://www.salidzini.lv/search.php", "search.php",$body);

 

 

 

 

?>

 

un search.php

 

<?php

 

$q = $_GET['q'];

$dati = $_GET['dati'];

$request_url=basename($_SERVER['REQUEST_URI']);

if($_GET["offset"])

{

$salidzini=file_get_contents('http://www.salidzini.lv/' .$request_url);

}

 

$html="<table width='100%'><tr><td>";

$htmlS=explode($html,$salidzini);

$html_explode=explode("<div style=\"padding-bottom: 50px;\"></div>",$htmlS[1]);

$body=$html.$html_explode[0];

 

echo '<meta http-equiv="Content-Type" content="text/html; charset=utf-8">';

echo '<link rel=stylesheet type="text/css" href="http://www.salidzini.lv/css/items.css?ver=131108">';

 

 

echo str_replace("http://www.salidzini.lv/search.php", "search.php",$body);

 

 

 

 

?>

 

Varbūt kaut kas līks.

Link to comment
Share on other sites

Parasti to dara ievelkot visu lapas saturu (bez nekāda tava $context un FALSE argumenta file_get_contents funkcijai). Un pēc tam ar regulārām izteiksmēm atrodot un izvelkot vajadzīgo lapas tekstu - paskaties, piemēram, preg_match_all funkciju.

 

 

 

 

Šis ir variants, bet tas neder, jo index1.html lapas saturs ir ļoooti smags. tapēc arī vajag sadalīt vairākās daļās, lai nav jāievelk visa lielā lapa.

Link to comment
Share on other sites

ja ir konkrētas robežas piem..

<!-- raksta sākums -->
..
<!-- raksta beigas -->

var ar stringa f-jām izvilkt bez preg_match*

 

 

šitas variants izklausās piemērots, jo varu rediģēt, kā tiks izveidots index1.html fails. attiecīgi varu salikt tagus ar norādēm.

Varbūt vari mazliet konkrētāk, vai iedot kādu linku..?

 

paldies!

Link to comment
Share on other sites

 

 

tieši tas kas vajadzīgs! :)

 

tomēr neliela aizķeršanās...

 

ja pareizi sapratu, kods izskatītos aptuveni šādi..?

 

$string= file_get_contents('index1.html');

$resultstart= strpos($string,"start of text");

$resultend= strpos($string,"end of text");

 

$str=file_get_contents("index1.html",null,null,$resultstart,$resultend-$resultstart);

 

 

 

kamēr $resultstart un $resultend vietā pats ierakstu skaitļus, viss strādā, tā, kā ir vajadzīgs. Bet ja atstāju, kā redzams šeit, saņemu erroru: stream does not support seeking in..

 

 

kas ir jāizlabo, ludzu iesakiet!?

Link to comment
Share on other sites

Nevajag jau divreiz pieprasīt to index1. Pietiek ar vienu reizi:

$string= file_get_contents('index1.html');
$resultstart= strpos($string,"start of text");
$resultend= strpos($string,"end of text");
$str=substr($string, $resultstart, $resultend-$resultstart);

Link to comment
Share on other sites

Nevajag jau divreiz pieprasīt to index1. Pietiek ar vienu reizi:

$string= file_get_contents('index1.html');
$resultstart= strpos($string,"start of text");
$resultend= strpos($string,"end of text");
$str=substr($string, $resultstart, $resultend-$resultstart);

 

 

 

strādā! lieliski! Paldies, bubu

Edited by kash
Link to comment
Share on other sites

×
×
  • Create New...