PHP url变量传递会打印变量名而不是值

时间:2018-12-17 00:04:40

标签: php html variables get

我正在尝试将字符串传递通过url,以通过另一个php页面中的echo语句进行打印,但它会打印变量名而不是值

第1页:

<p><?php $first = $row['post'];
    $string = substr($row['post'], 0, 200);
    echo $string;
    ?></p>

    </header>
    <a href="#" class="image main"><img src="images/pic01.jpg" alt="" /></a>
    <ul class="actions special">
    <a href="article.php?posters='.$first.'" class="button large">
        Full Story</a>

这是我试图将变量的值首先通过url传递到下一页的代码

第2页:

<p><?php echo $_GET['posters'];?></p>

这就是我在第2页中称呼它的方式,并且打印在页面上的结果是

'.$first.'

如何获取它来打印变量$first而不是名称的实际值。

3 个答案:

答案 0 :(得分:2)

简单修复:

<a href="article.php?posters=<?php echo $first ?>" class="button large">Full Story</a>  

希望这会有所帮助!

答案 1 :(得分:1)

由于OP没有提及$row['post']的值,所以我任意选择一个值,并按如下方式操纵它,将其分配给$first

<p><?php 
$row['post'] = "The rain in Spain stays mainly in the plain";
$first = substr($row['post'], -5, 5);
?></p>
</header>
<a href="#" class="image main"><img src="images/pic01.jpg" alt="" /></a>
<ul class="actions special">
<a href="article.php?posters=<?=urlencode($first) ?>" class="button large">
    Full Story</a>

请参见live code

a 标记是HTML,不会给圆点赋予任何特殊含义,不像PHP那样,PHP会将其视为串联运算符,因此应删除两个圆点。

为了在将PHP嵌入HTML中时显示变量的PHP值(这不是当今的最佳实践;退出MVC),有两种方法。一种是使用 echo ,但也有一个速记有效,本示例也使用了速记,即<?=$first

注意:构建网址时,好的做法是使用urlencode()。另外,您不需要在网址的查询字符串部分中使用单引号;单引号可以防止对变量值进行字符串插值,因此您看到的是文字变量名称。

答案 2 :(得分:-1)

<?php 

//single quoutes return variable name

$first = "hello";
echo '$first'; //$first

//double quoutes return variable value
$first = "hello";
echo "$first" ;  // hello

?>   

在第1页中 您必须使用双引号

<a href="article.php?posters=<?php echo $first ?>" class="button large"> Full Story</a>