PHP Tag in PHP Tag

son gohan

Erfahrenes Mitglied
Hallo,

wie kann man das richtig schreiben:

PHP:
 <?php
if ($_COOKIE['sitestyle'] == 'normal')
{
echo "<link rel=\"stylesheet\" href=\"<?php  if(isset($_COOKIE['font']))
{
print  trim($_COOKIE['font']);
}
else
{
print "font1";
}
?>.css\" media=\"screen\" />";
}
else
{
echo "<link rel=\"stylesheet\" href=\"<?php  if(isset($_COOKIE['font_2']))
{
print  trim($_COOKIE['font_2']);
}
else
{
print "font1";
}
?>.css\" media=\"screen\" />";
}
?>

Ich will das dieses eine link Tag nur bei einem bestimmten style ausgegeben wird, dazu die PHP mit if FUnktion welche es nur dann ausgibt. Im Link Tag selber ist aber auch eine PHP If Anweisung die später das Link Tag brauch
 
In deinem Fall wäre der Einsatz des so genannten ternären Operators möglich:
PHP:
<?php

	if( isset($_COOKIE['sitestyle']) && $_COOKIE['sitestyle'] == 'normal' ) {
		echo '<link rel="stylesheet" href="'.( isset($_COOKIE['font']) ? rawurlencode(trim($_COOKIE['font'])) : 'font1' ).'.css" media="screen" />';
	} else {
		echo '<link rel="stylesheet" href="'.( isset($_COOKIE['font_2']) ? rawurlencode(trim($_COOKIE['font_2'])) : 'font1' ),'.css" media="screen" />';
	}

?>
 
Hallo Gumbo,

vielen Dank, von dir kann man immer gut lernen. Warum schreibst du keine Backshlas bei den Anführungsstrichen im PHP Tag oder muss man das nicht wenn man ' für " nimmt ?

Ich habe gelernt das man eigentlich immer vor Anführungsstrichen ein Backshlash machen soll.

Dann würde das so aussehen mit Backshlas :

PHP:
 <?php
	if( isset($_COOKIE['sitestyle']) && $_COOKIE['sitestyle'] == 'normal' ) {
		echo '<link rel=\"stylesheet\" href=\"'.( isset($_COOKIE['font']) ? rawurlencode(trim($_COOKIE['font'])) : 'font1' ).'.css\" media=\"screen\" />';
	} else {
		echo '<link rel=\"stylesheet\" href=\"'.( isset($_COOKIE['font_2']) ? rawurlencode(trim($_COOKIE['font_2'])) : 'font1' ),'.css\" media=\"screen\" />';
	}
?>
 
Anführungszeichen müssen nur dann mit einem Backslash maskiert werden, wenn es die umschließenden Anführungszeichen der Zeichenkette sind: '\'"' ergäbe '" und "\"'" ergäbe "', wogegen '\'\"' '\" und "\"\'" "\' ergäbe.
 
[…] das ist ja echt nicht so simpel, das muss ich mir mal länger anschauen.
Eigentlich ist es sehr simpel, nur möglicherweise hab ich es etwas kompliziert ausgedrückt: Wird eine Zeichenkette durch einfache Anführungszeichen ausgezeichnet ('…'), muss nur das einfache Anführungszeichen innerhalb der Zeichenkette maskiert werden. Wird eine Zeichenkette durch doppelte Anführungszeichen ausgezeichnet ("…"), muss nur das doppelte Anführungszeichen maskiert werden.
 
Zurück