Ładowanie html przez klasę

0

Witam,

Czy może mi ktoś wyjaśnić dlaczego nie mogę załadować html przez klasę? Kod który jest poniżej generuje błąd:** Parse error: syntax error, unexpected 'pl' (T_STRING), expecting ',' or ';' in C:\xampp\htdocs\test\CLASS\ModuleLoader.class.php on line 14**

index.php:

<?php

require_once "CLASS/ModuleLoader.class.php";

load::setDoctype();

?>
 

ModuleLoader.class.php:

<?php

	class load
	{
	
	
	public $doctype;
	
	static public function setDoctype()
	{
		echo"
		
		<!DOCTYPE HTML>
		<html lang="pl">
		<head>
		<meta charset="utf-8" />
		<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
		<link rel="stylesheet" href="style/style.css" type="text/css" />
		<link href='https://fonts.googleapis.com/css?family=Lato:900,700&subset=latin,latin-ext' rel='stylesheet' type='text/css'>
	
		<title>cms</title>
		</head>
		
		
		";
	}
	}
	
?>
 

Myślałem, że przeglądarka odczyta static public setDoctype jako string a przeglądarka wyłapie już css. Najwyraźniej się przeliczyłem. Czy ktoś może wie gdzie popełniłem błąd?

1

Poczytaj o sekwencji ucieczki.

0

Teraz gra i buczy :) Znak "/" sekwencji ucieczki załatwił sprawę.

0

Teraz powstał bardziej złożony problem. Mianowicie, gdy chcę ładować więcej modułów, to jakby css przestawał funkcjonować i strona się rozjeżdża...

index.html (gdy go wczytuję, to ładnie łapie css i wyświetla się normalnie):

<!DOCTYPE HTML>
<html lang="pl">
<head>
	<meta charset="utf-8" />
	<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
	<link rel="stylesheet" href="style/style.css" type="text/css" />
	<link href='https://fonts.googleapis.com/css?family=Lato:900,700&subset=latin,latin-ext' rel='stylesheet' type='text/css'>
	
	<title>cms</title>
</head>

<body>
	
	<div class="container">
	
		<div class="logo">
		<h2>CMS</h2>
		</div>
		
		<div class="menu">
			<div class="option">Strona główna</div>
			<div class="option">O nas</div>
			<div class="option">Kontakt</div>
			
			<form class="login" action="login.php" method="post">
			<input type="text" name="login" value="Nazwa użytkownika" />
			<input type="password" name="password" value="Hasło" />
			<input type="submit" name="login-submit" value="OK" />
			
			
			</form>
			
			<div style="clear:both;"></div>
		</div>
		
		<div class="topbar">
			<div class="topbarL">
			<img src="img/linux.png" />
			</div>
				<div class="topbarR">
				O projekcie kilka słów <br/>
				Lorem ipsum dolor sit amet enim. Etiam ullamcorper. Suspendisse a pellentesque dui, non felis. Maecenas malesuada elit lectus felis, 
				</div>
				<div style="clear:both;"></div>
		</div>
		
		<div class="sidebar">
			<div class="optionL">Strona główna</div>
			<div class="optionL">Zaloguj</div>
			<div class="optionL">Zarejestruj</div>
			<div class="optionL">O nas</div>
			<div class="optionL">Kontakt</div>
			<div class="optionL">Wyloguj</div>
		</div>
		
		<div class="content">
		Lorem ipsum dolor sit amet enim. Etiam ullamcorper. Suspendisse a pellentesque dui, non felis. 
		Maecenas malesuada elit lectus felis, malesuada ultricies. Curabitur et ligula. Ut molestie a, ultricies porta urna. 
		Vestibulum commodo volutpat a, convallis ac, laoreet enim. Phasellus fermentum in, dolor. Pellentesque facilisis. Nulla imperdiet 
		sit amet magna. Vestibulum dapibus, mauris nec malesuada fames ac turpis velit, rhoncus eu, luctus et interdum adipiscing wisi. 
		Aliquam erat ac ipsum. Integer aliquam purus. Quisque lorem tortor fringilla sed, vestibulum id, eleifend justo vel bibendum sapien 
		massa ac turpis faucibus orci luctus non, consectetuer lobortis quis, varius in, purus. Integer ultrices posuere cubilia Curae, Nulla ipsum dolor lacus, 
		suscipit adipiscing. Cum sociis natoque penatibus et ultrices volutpat. Nullam wisi ultricies a, gravida vitae, dapibus risus ante sodales lectus blandit eu,
		tempor diam pede cursus vitae, ultricies eu, faucibus quis, porttitor eros cursus lectus, pellentesque eget, bibendum a, gravida ullamcorper quam. Nullam 
		viverra consectetuer. Quisque cursus et, porttitor risus. Aliquam sem. In hendrerit nulla quam nunc, accumsan congue. Lorem ipsum primis in nibh vel risus.
		Sed vel lectus. Ut sagittis, ipsum dolor quam.
		</div>
		
		
				
		<div class="footer">
		Copyright by  2015
		</div>

	</div>


</body>
</html>

ModuleLoader.class.php:

<?php

class load
{
	
	static public function setDoctype()
	{
		echo'
		
		<!DOCTYPE HTML>
		<html lang=\"pl">
		<head>
		<meta charset="utf-8" />
		<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
		<link rel="stylesheet" href="style/style.css" type="text/css" />
		<link href=\'https://fonts.googleapis.com/css?family=Lato:900,700&subset=latin,latin-ext\' rel=\'stylesheet\' type=\'text/css\'>
	
		<title>cms</title>
		</head>		
		';
	}
	
	static public function setMenu()
	{
		echo'
		<body>
	
		<div class="container">
	
		<div class="logo">
		<h2>CMS</h2>
		</div>
		
		<div class="menu">
		<div class="option">Strona główna</div>
		<div class="option">O nas</div>
		<div class="option">Kontakt</div>
			
		<form class="login" action="login.php" method="post">
		<input type="text" name="login" value="Nazwa użytkownika" />
		<input type="password" name="password" value="Hasło" />
		<input type="button" name="login-submit" value="OK" />
		
		<div style="clear:both;"></div>
		</div>
			
			
		</form>
		
		';
	}
	
	static public function setRest()
	{
		echo'
		<div style="clear:both;"></div>
		</div>
		
		<div class="topbar">
			<div class="topbarL">
			<img src="img/linux.png" />
			</div>
				<div class="topbarR">
				O projekcie kilka słów <br/>
				Lorem ipsum dolor sit amet enim. Etiam ullamcorper. Suspendisse a pellentesque dui, non felis. Maecenas malesuada elit lectus felis, 
				</div>
				<div style="clear:both;"></div>
		</div>
		
		<div class="sidebar">
			<div class="optionL">Strona główna</div>
			<div class="optionL">Zaloguj</div>
			<div class="optionL">Zarejestruj</div>
			<div class="optionL">O nas</div>
			<div class="optionL">Kontakt</div>
			<div class="optionL">Wyloguj</div>
		</div>
		
		<div class="content">
		Lorem ipsum dolor sit amet enim. Etiam ullamcorper. Suspendisse a pellentesque dui, non felis. 
		Maecenas malesuada elit lectus felis, malesuada ultricies. Curabitur et ligula. Ut molestie a, ultricies porta urna. 
		Vestibulum commodo volutpat a, convallis ac, laoreet enim. Phasellus fermentum in, dolor. Pellentesque facilisis. Nulla imperdiet 
		sit amet magna. Vestibulum dapibus, mauris nec malesuada fames ac turpis velit, rhoncus eu, luctus et interdum adipiscing wisi. 
		Aliquam erat ac ipsum. Integer aliquam purus. Quisque lorem tortor fringilla sed, vestibulum id, eleifend justo vel bibendum sapien 
		massa ac turpis faucibus orci luctus non, consectetuer lobortis quis, varius in, purus. Integer ultrices posuere cubilia Curae, Nulla ipsum dolor lacus, 
		suscipit adipiscing. Cum sociis natoque penatibus et ultrices volutpat. Nullam wisi ultricies a, gravida vitae, dapibus risus ante sodales lectus blandit eu,
		tempor diam pede cursus vitae, ultricies eu, faucibus quis, porttitor eros cursus lectus, pellentesque eget, bibendum a, gravida ullamcorper quam. Nullam 
		viverra consectetuer. Quisque cursus et, porttitor risus. Aliquam sem. In hendrerit nulla quam nunc, accumsan congue. Lorem ipsum primis in nibh vel risus.
		Sed vel lectus. Ut sagittis, ipsum dolor quam.
		</div>
		
		
				
		<div class="footer">
		Copyright by  2015
		</div>

	</div>


</body>
</html>
		
		';
	}
	
	
}
	
?>
 

index.php (Wywołując tą stronę, css się rozjeżdża jakby przestał dziedziczyć):

<?php

require_once "CLASS/ModuleLoader.class.php";

load::setDoctype();
load::setMenu();
load::setRest();

?>
 

Można jakoś pogodzić css z php? Czy takie podejście aby ładować html partiami jest ok?

0

Nie wrzucaj html w echo bo to bardzo zły pomysł - tracisz podświetlanie składni i sprawdzanie błędów (mam nadzieję, że tego w notatniku nie piszesz). Tworzenie klas tylko do "drukowania" htmla nie ma sensu - html to ma być html. To jego przeplatasz pehapem tam gdzie to niezbędne, nie na odwrót (zainteresuj się może jakimś systemem szablonów typu Twig to zobaczysz jak to powinno działać).

0

Ok, rozumiem. Domyślam się, że Twig związany jest z Symfony2. Chciałbym docelowo zając się tym frameworkiem ale najpierw chciałbym bardziej poznać PHP. Bo w czym mam problem... Chciałbym zacząć robić to obiektowo. Zawsze pisałem witryny w ten sposób, że w plikach z rozszerzeniem .php, pisałem html i tam w formularzach wsadzałem kod php. Zastanawiałem się czy można to jakoś zmechanizować poprzez obiektówkę, czyli tworzyć takie właśnie "moduły html" w jakiejś klasie, a potem ja ładować zamiast przepisywać na każdej stronie html.

Jest jakiś sposób, żeby ładować html bardziej automatycznie? Czy trzeba robić to: html...<?php...?>...html.

Trochę za krótki jestem, żeby za Symfony2 się łapać.

1 użytkowników online, w tym zalogowanych: 0, gości: 1