Concatenating HTML and PHP to make an image link

2019-06-04 20:44发布

问题:

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?

回答1:

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>


回答2:

Missing . after $url:

<?php echo "<a href = ".$url"><img...


回答3:

after $url you need to have a period.



回答4:

Try this instead:

<?php 
echo "<a href = \"".$url."\"><img src = \"".$userImage."\" class = \"".$class."\"></a>";
?>


回答5:

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); ?>