Finde den Fehler nicht

Wipeout

Erfahrenes Mitglied
Hallo Community,

ich bin heute irgendwie blind.
Habe in diesem Abschnitt einen fehler drin aber finde den irgendwie nicht.
PHP:
if (strlen($news['news_main'])>220)
{
$news['news_main']=substr($news['news_main'],0,180) . "   ... <a onclick=\"updater('inhalt','lade.php?seite=news/news&amp;news_id=' \" . $news['news_id'] \" . \">mehr</a>";
}

Hoffe Ihr seht mehr als ich.
 
Ich vermute, der Inhalt der Variable wird nicht entprechend in den String eingebunden.
Nachfolgend ein paar geläufige Varianten, wie man eine Variable an einen String konkatenieren oder integrieren kann:

PHP:
if (strlen($news['news_main']) > 220) {
	$news['news_main'] = substr($news['news_main'], 0, 180)
		. "   ... <a onclick=\"updater('inhalt','lade.php?seite=news/news&amp;news_id=\""
		. $news['news_id']
		. "\">mehr</a>";

	// oder
	$news['news_main'] = substr($news['news_main'], 0, 180)
		. "   ... <a onclick=\"updater('inhalt','lade.php?seite=news/news&amp;news_id={$news['news_id']}\">mehr</a>";

	// oder
	$news['news_main'] = substr($news['news_main'], 0, 180)
		. "   ... <a onclick=\"updater('inhalt','lade.php?seite=news/news&amp;news_id=$news[news_id]\">mehr</a>";

	// oder an der Stelle, an welcher $news['news_main'] ausgegeben wird
	echo substr($news['news_main'], 0, 180); ?>
... <a onclick="updater('inhalt','lade.php?seite=news/news&amp;news_id=<?php echo $news['news_id']; ?>">mehr</a><?php
}

Ein kleiner allgemeingültiger Hinweis: Whitespaces sind nicht böse, und Strings auf mehrere Zeilen aufzuteilen tut auch nicht weh.
Des Weiteren arbeitet es sich mit EVA bequemer, und statische Ausgaben können auch außerhalb von PHP-Code stehen.
 
Genau so wie im ersten Beispiel mach ich es meist auch, manchmal können einem so kleine Striche schon zur Verzweiflung bringen :D
 
@maeTimmae

Für mich sieht es so als als fehlte in jedem deiner Beispiele ein ' und eine ) wobei die geschlossene Klammer schon bei Wipeout fehlt.

;)

@Wipeout

eigentlich solltest du doch schon am Highlight hier im Forum erkennen können, dass bei

news_id=' \" . $news['news_id'] \" . \"

etwas nicht stimmen kann.
 
Zuletzt bearbeitet:
@maeTimmae
Nachfolgend mal kurz erklärt wie sich variablen in Strings verhalten...
PHP:
$h = "hallo";
echo '$h'; // Ausgabe $h

echo "$h"; // Ausgabe hallo
um den inhalt einer Variable in einen String zu bekommen muss man " verwenden oder man fügt die Variable mit dem Verkettungsoperator (.) hinzu...
PHP:
$h = "Hallo";
echo "$h Welt";
// oder 
echo $h.' Welt';
 
Zurück