I'm trying to make an image into a link using PHP and HTML. The main idea is to grab user's images and screen names from Twitter, then make the image into a clickable link to their profile by building the URL and adding their screen name on the end. But I get a error message:
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ',' or ';' in C:\wamp\www\fyp\tweeter3.php on line 71.
This is line 71 (it's part of a foreach loop):
<?php echo "<a href = ".$url"><img src = ".$userImage." class = ".$class."></a>"; ?>
There's a syntax error in there I just can't pinpoint.
These are my variables:
$userScreenName = $user -> screen_name;
$userImage = $user -> profile_image_url;
$class = "myImgClass";
$url = "https://twitter.com/".$userScreenName;
Can you spot the error?
You are missing a dot after $url and the HTML quotes to generate valid code:
<?php echo "<a href = '".$url."'><img src = '".$userImage."' class = '".$class."'></a>"; ?>
Without the quotes you get:
<a href = the url><img src = user image class = the class></a>
With the quotes:
<a href = 'the url'><img src = 'user image' class = 'the class'></a>
Missing .
after $url
:
<?php echo "<a href = ".$url"><img...
after $url you need to have a period.
Try this instead:
<?php
echo "<a href = \"".$url."\"><img src = \"".$userImage."\" class = \"".$class."\"></a>";
?>
In my opinion, the simplest and most readable way to do is:
<?php echo "<a href = '$url'><img src = '$userImage' class = '$class'></a>"; ?>
There is only one long text, and no concatenation is used. It reduces the possibility to have an error caused by a missing double quote or missing dot. All PHP variables will be replaced automatically by their values.
You could also use printf to have all the variables outside of the string:
<?php printf('<a href = "%s"><img src = "%s" class = "%s"></a>', $url, $userImage, $class); ?>