webForumDet fria alternativet

Få html koden av sida x?

PHP

5 svar · 664 visningar · startad av yador

Medlem sedan mars 2004455 inlägg
Frågan#1

Hejsan!
Hur får man html koden av en webbsida? Exempel på vad jag vill ska gå:

//meny.php
print "meny:n";
//index.php
$meny = meny.php; //sidan kommer ligga på min egen webserver.
print $meny . "<h1>text</h1>"; // ska skriva ut "meny:n<h1>text</h1>";

Någon som har någon ide på hur man kan lösa det? Finns det någon färdig funktion för detta?

Tack på förhand!

Medlem sedan juni 20014 421 inlägg
#2

kolla på include och/eller require.

Medlem sedan mars 2004455 inlägg
#3

Nej alltså. Jag vill inte inkludera filen utan bara få ut data:n som den php filen skriver ut. Försöker nämligen skapa en webbsida där först en html sida läses som ser typ ut såhär:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title><? @document.title ?></title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="description" content="<? @document.meta_description ?>" />
<meta name="keywords" content="<? @document.meta_keywords ?>" />
</head>
<body>
<div id="wrapper">

	<div id="header">
	
	</div>

	<div id="meny">
		<? @document.meny ?>
	</div>

	<div class="content">
		<? @document.content ?>
	</div>

	<div id="bottom">
		<? @document.bottom ?>
	</div>
</div>
</body>
</html>

Där jag sedan hade tänkt ha att alla sidor ska läsa in denna och sedan ersätta alla <? @document.bottom ?> med något lämpligt värde. Såhär typ:

$temptags = array("<? @document.title ?>",
		"<? @document.meta_description ?>",
		"<? @document.meta_keywords ?>",
		"<? @document.meny ?>",
		"<? @document.content ?>",
		"<? @document.bottom ?>");
$data = array("Muahaha", //sidans titel
		"En sida om lite allt möjligt", //meta taggen med description värdet
		"om sidan här",  //meta taggen med keywords värdet
		"<ol><li><a href=\"index.php\">Startsida</a></li></ol>", //sidans meny
		"<h1>Hello world</h1>", //sidans innehåll
		"Copyright &copy; X.com"); //innehållet i bottom.

print str_replace($temptags, $data, file_get_contents(TEMPLATE_FILE));

Men kom på att det inte är någon bra ide då det kan bli lite krångligt att lägga till t.ex javascript kod. Därför hade jag tänkt att ha en php sida som skapar head innehållet och en som skapar body innehållet. Dessa filer ska sedan i sin tur vara uppbyggda på exakt samma viss. Sedan ska en fil fånga upp innehållet i varenda fil och sända det till besökaren. Jag tror att detta kallas template, men är osäker. Då måste jag som jag vet kunna anropa en annan php fil och spara dess output, eller?

Medlem sedan juni 20014 421 inlägg
#4
ob_start();
   include('file.php');
   $inc = ob_get_contents();
ob_end_clean();

Då exekveras sidan och du får ut outputen av phpn och lagrar den i $inc. Vill du läsa in en fil utan att exekvera den:

$inc = implode('', file('file.html'));

sen kan du göra vad du vill med $inc.

Medlem sedan juni 20031 837 inlägg
#5

använd

$buf = file_get_contents("filename.php");

http://se2.php.net/manual/en/function.file-get-contents.php

Medlem sedan mars 2004455 inlägg
#6

Tack :)

366 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
213 ms — deklarationer (db)
0 ms — hämta statistik (cache)
148 ms — hämta tråd, inlägg och bilagor (db)
215 ms — ändringar (db)