В основном у меня есть блок html, который я хочу повторить на странице, и html имеет знак $ в нем, и php считает, что это переменная, поэтому $ 1 рассматривается как переменная, а не значение и не отображается.
Здесь есть стандартные ответы, но никто не работает: PHP: Как получить $ для печати с использованием эха
Моя следующая идея состоит в том, чтобы разделить строку на $ и 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('$', '$', $s); echo $s . "<br>"; }
Я решил, что должен просто опубликовать его в любом случае.
Благодаря,
Мат
Вы делаете это не в том месте. Переменная-интерполяция выполняется, когда двойной кавычек строкового литерала (который в вашем случае хранится в $rowmk->longdescription
daclared. После этого вы не можете ничего сделать, чтобы вернуть свои $
s обратно.
Решение, выполняйте правильное экранирование, когда вы объявляете строку.
Или вы можете эхо-строку с использованием одиночных кавычек …
<?php echo 'Give me $1'; ?>
будет печатать:
Дайте мне 1 доллар
PHP string docs:
http://php.net/manual/en/language.types.string.php
Сторона примечания – ссылка, которую вы предоставляете, имеет много ответов, которые будут работать отлично. Как вы применяете их таким образом, чтобы это не сработало?
Просто используйте одиночную кавычку.
$foo = 'Hello'; echo '$foo'; // $foo echo "$foo"; // Hello
Я предполагаю, что вы читаете свои строки из базы данных. Знаки доллара внутри этих строк не будут интерполированы 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>"; }
Я сделал это, используя это
echo "$" . "VariableName";