webForumDet fria alternativet

Hur ska fnuttarna vara?

PHP

11 svar · 456 visningar · startad av lillebror

Medlem sedan apr. 20041 597 inlägg
Frågan#1

Hej,

Jag har lite problem med hur jag får in mina variabler i en textsträng. Normalt brukar jag använda dubbelfnutt och då vet jag hur jag "spränger in" variabler i strängen. Nu är det enkelfnutt som används i detta exempel och jag har inte lyckats få till det.

Så här ser koden ut:

$message = '
	<html>
	<head>
 	<title>Artikeltips från Flygfyren - Ett svenskt flygutbildningsforum för piloter och flygintresserade!</title>
	
	<style type="text/css">
   		font: 11px verdana, Helvetica, Impact, sans-serif;
		font-weight: normal;
	</style>
	
	</head>
	<body>	
	<img src="http://www.flygfyren.nu/picture/flygfyren_logo_mail.jpg"><br /><br /><br />
	
	<b>Artikeltips</b><br /><br />
	Läs artikeln <a href="http://www.flygfyren.nu/showarticle.php?articleID=[B]".$_POST['articleID']."[/B]&webtip=article">[B]".$_POST['articlesubject']."[/B]
	<br /><br />
	Väl mött,<br />
	<img src="http://www.flygfyren.nu/picture/signatur.jpg"><br />
	Namnr />Grundare/utvecklare
	</body>
	</html>
	';

Det är de fetmarkerade variablerna jag vill få in i strängen. Hur gör jag?

Medlem sedan dec. 200435 inlägg
#2

har du provat att ta bort punkten framför och bakom $_POST['articleID'] och $_POST['articlesubject'] samt att du har variabeln innanför " " om täcker hela strängen.

Medlem sedan juli 20023 617 inlägg
#3

Byt ut dubbelfnuttarna runt variablerna mot enkelfnuttar.

Medlem sedan apr. 20041 597 inlägg
#4

Tack! Det hjälpte att plocka bort "-tecknet (y) :)

Medlem sedan apr. 20041 597 inlägg
#5

Fortsätter på denna tråd då detta problem är snarlikt med mitt förra.

Nu har jag klippt in en tabell som befinner sig i $message-variabeln som ramar in strängen med '-tecken. I den tabell som jag har infogat finns det <?php- och ?>-taggar. Jag testatde och gjorde likadant som med variablerna jag ville infoga tidigare, dvs jag använda '..'. Detta fungerade dock inte när det blev större kodstycken. Förmodligen gör jag fel :)

Så här ser koden ut. Jag vill ha in php-koden så att den följer med strängen:


	[B]$message = '[/B]
	<table style="width: 100%; margin-bottom: 10px; padding: 10px; border: 1px solid #D2D2D2;">
		<tr>
			<td>
			<a style="font-size: 14px; font-weight: bold;" href="showarticle.php?articleID='.$article['articleID'].'">'.$article['headline'].'</a>
			<br />
			av 
			<?php
			if($article['username'] == $_SESSION["uid"]) { 
			?>
			<a href="/myprofile.php">'.$article['username'].'</a>
			<?php
			} else { 
			?>
			<a href="/showprofile.php?uid='.$article['memberID'].'">'.$article['username'].'</a>
			<?php 
			} 
			?>
						
			- <?php echo $article['date_time']; ?>
			</td>
		</tr>
			
		<tr>
			<td style="line-height: 150%;">
			<?php
			if($picture <> NULL) { 
			?>
			<img style="float: left; align: left; border: 1px solid #888; margin-top: 4px; margin-right: 15px; margin-bottom: 5px;" src="'.$picture['path'].$picture['filename'].'" alt="artikelbild" />
			<?php 
			} 
		
			echo $article['content']; 
			?>
		
			</td>
		</tr>
		<tr>
			<td><a href="showarticle.php?articleID='.$article['articleID'].'#Comment">'.$comment.'</a>
			</td>
		</tr>		
	</table>
[B]';[/B]

Hur gör man så att det blir rätt?

Medlem sedan aug. 20002 975 inlägg
#6

Observera att du befinner dig i HTML-läge. Utskrift av PHP-variabler mådte du göra inom PHP-taggar.

Medlem sedan mars 20034 471 inlägg
#7

Du skrev:

	<table style="width: 100%; margin-bottom: 10px; padding: 10px; border: 1px solid #D2D2D2;">
		<tr>
			<td>
			<a style="font-size: 14px; font-weight: bold;" href="showarticle.php?articleID='.$article['articleID'].'">'.$article['headline'].'</a>
			<br />

En sträng som börjar med " avslutas med ", och om den börjar med ' så avslutas den med '. Dessutom måste du stå i PHP-läge för att kunna skriva ut variabler.

Skriv:

	<table style="width: 100%; margin-bottom: 10px; padding: 10px; border: 1px solid #D2D2D2;">
		<tr>
			<td>
			<a style="font-size: 14px; font-weight: bold;" href="showarticle.php?articleID=<?php echo $article['articleID']; ?>"><?php echo $article['headline']; ?></a>
			<br />

Eller:

	<table style="width: 100%; margin-bottom: 10px; padding: 10px; border: 1px solid #D2D2D2;">
		<tr>
			<td>
			<?php echo "<a style=\"font-size: 14px; font-weight: bold;\" href=\"showarticle.php?articleID=".$article['articleID'].">".$article['headline']."</a>
			<br />"; ?>

Edit: Matte var visst snabbare...

Medlem sedan apr. 20041 597 inlägg
#8

Jag glömde bort en ganska vital detalj. Som man frågar får man svar :e

Har korrigerat koden högst upp. Det skulle givetvis finnas med...

$message = 'ALLT STÅR HÄR IMELLAN';

Jag står alltså redan i PHP-läge...

Hur blir det då?

Ytterligare en fråga. Vad är de för skillnad på att använda " och '? Du kan ju skriva en sträng på båda sätten.

Medlem sedan mars 20025 907 inlägg
#9
$message = '
	<table style="width: 100%; margin-bottom: 10px; padding: 10px; border: 1px solid #D2D2D2;">
		<tr>
			<td>
			<a style="font-size: 14px; font-weight: bold;" href="showarticle.php?articleID='.$article['articleID'].'">'.$article['headline'].'</a>
			<br />
			av ';
			if($article['username'] == $_SESSION["uid"]) { 
				$message .= '<a href="/myprofile.php">'.$article['username'].'</a>';
			} else { 
				$message .= '<a href="/showprofile.php?uid='.$article['memberID'].'">'.$article['username'].'</a>';
			 
			} 
			$message .= '- '.$article['date_time'] .'
			</td>
		</tr>
			
		<tr>
			<td style="line-height: 150%;">';
			if($picture <> NULL) { 
				$message .= '<img style="float: left; align: left; border: 1px solid #888; margin-top: 4px; margin-right: 15px; margin-bottom: 5px;" src="'.$picture['path'].$picture['filename'].'" alt="artikelbild" />';
			} 
			$message .= $article['content'] .' 
		
			</td>
		</tr>
		<tr>
			<td><a href="showarticle.php?articleID='.$article['articleID'].'#Comment">'.$comment.'</a>
			</td>
		</tr>		
	</table>
';

så borde det bli. Vet inte hur din utvecklingsmiljö ser ut nu, men jag rekommenderar att du provar på en editor som har inbyggd färgning av php-syntax. Då ser man tydligt var någonstans i sin kod man har fel. :)

Ytterligare en fråga. Vad är de för skillnad på att använda " och '? Du kan ju skriva en sträng på båda sätten.

När du använder ' så tolkas allt mellan fnuttarna som ren text. Använder du dig av " så söker php-interpretatorn igenom din sträng efter variabler. ' borde alltså vara marginellt snabbare (har inga bevis för det dock).

$foo = 'bar';
$var1 = 'beep $foo'; //$var1 innehåller nu texten beep $foo
$var2 = "beep $foo"; //$var2 innehåller nu texten beep bar
Medlem sedan apr. 20041 597 inlägg
#10

Så man var alltså tvungen att konkatenera för varje PHP-sats i HTML-koden? :)

Medlem sedan mars 20025 907 inlägg
#11

lillebror skrev:

Så man var alltså tvungen att konkatenera för varje PHP-sats i HTML-koden? :)

Japp, annars kommer din php-kod att tolkas som text (se min redigering ovan).

Medlem sedan apr. 20041 597 inlägg
#12

Det fungerar klockrent! Tack Peeer! :)

268 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
140 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)