2012-02-27 88 views
4

基本上我有一块html,我想要回显页面,并且html中有$符号,php认为它是一个变量,所以$ 1被视为变量而不是值并不显示。

这里有标准答案,但没有一个是工作:PHP: How to get $ to print using echo

我的下一个想法是分裂在$字符串和回声各部分进行。

这里是我试过回声和打印的代码。

foreach ($rows as $rowmk) { 
    $s = $rowmk->longdescription; 
    //$s = str_replace('$', '@', $s); 
    $s = str_replace('$', '\$', $s); 
    //echo "$s" . "<br>"; 
    print $s; 
} 

所有帮助表示赞赏。

好,我通过使用$

foreach ($rows as $rowmk) { 
    $s = $rowmk->longdescription;  
    $s = str_replace('$', '&#36;', $s); 
    echo $s . "<br>"; 
} 

我想我应该只是张贴也无妨的字符代码值解决。

感谢,

+3

你的问题和答案没有意义。 '$ dollar ='$'; echo $ dollar;'会工作得很好。 – Matthew 2012-02-27 23:15:59

+0

如果你的html有一个美元符号,并且你试图回显那个字符串,PHP将不会假设$符号是一个可变前缀 - 它只会打印出文本。所以,我认为你的第一个代码块有另一个问题。你没有在模板中使用eval(),对吗? – halfer 2012-02-27 23:17:24

+0

@Matthew但是'$ dollar =“$”; echo $ dollar;'不起作用! – 2016-06-17 11:34:33

回答

1

你正在做错的地方。当双引号字符串文字(在您的情况下,存储在$rowmk->longdescription中的文件是安捷伦文件)完成变量插值后,完成后,您无法真正地执行任何操作以获取$s的回复。声明字符串

+0

谢谢。我不知道... – 2012-02-28 01:44:07

11

或者你可以呼应字符串常量使用单引号...

<?php 

echo 'Give me $1'; 

?> 

会打印:

给我$ 1

PHP字符串文档:

http://php.net/manual/en/language.types.string.php

备注 - 您提供的链接有很多答案可以完美运作。你如何以不起作用的方式应用它们?

+0

这并不能真正回答他的问题。他已经在使用单引号。他一定在做别的事,他没有向我们展示。 – Matthew 2012-02-27 23:19:05

+0

我没有看到他已经使用单引号,但我确实看到了你的观点。由于他从$ db回应,他可能无法完全控制原始状态下的输出,这就是他向我们展示他的解决方案的原因。虽然在输入上而不是在每次读取上编码数据会更容易。不过,从数据库回应不应该评估$。想象一下,这将是多么的致命。 – 2012-02-27 23:28:34

+0

我的longdescription字段是html,表格中有一列中有一个美元值的列表,例如:​​$ 5。 5美元被解释为一个变量。回应'$ s'输出$ s而不是表格... – 2012-02-28 01:39:14

4

只需使用一个单引号字符串。

$foo = 'Hello'; 
echo '$foo'; // $foo 
echo "$foo"; // Hello 
0

我假设你从数据库中读取你行这些字符串内美元符号不会被PHP进行插值这里有一个小的测试脚本来尝试一下:。

// you'd first have to set the three variables according to your database 
    $dbh = new PDO($DSN, $DB_USER, $DB_PASS); 

    // create a table and insert a string containing a dollar sign 
    $dbh->exec('CREATE TABLE IF NOT EXISTS some_text (longdescription VARCHAR(255))'); 
    $dbh->exec('INSERT INTO some_text (longdescription) VALUES ("10 $")'); 

    // query all the data from the table 
    $query =$dbh->query("SELECT * FROM some_text"); 
    $rows = $query->fetchAll(PDO::FETCH_CLASS); 

    // loop over all the rows (as in your example) and output the rows 
    // no problem at all 
    foreach ($rows as $rowmk) { 
    $s = $rowmk->longdescription; 
    echo $s . "<br>"; 
    } 
+0

嗨bjelli,可悲的是他们被解释为变量。 – 2012-02-28 01:42:58

-1

我做它使用这个

echo "$" . "VariableName";