Come printingre $ con PHP

Fondamentalmente ho un block di html che voglio echo alla pagina e l'html ha il segno $ in esso e il php pensa che sia una variabile quindi $ 1 viene trattato come variabile e non come valore.

Qui ci sono le risposte standard ma nessuna funziona: PHP: come get $ per printingre usando echo

La mia prossima idea è quella di dividere la string in $ ed echeggiare each parte.

Ecco il codice che ho provato echo e print.

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

Tutto l'aiuto è apprezzato.

OK ho risolto utilizzando il valore del codice del carattere per $

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

Ho pensato che avrei dovuto postarlo comunque.

Grazie,

Stuoia

Lo stai facendo nel posto sbagliato. L'interpolazione variabile viene eseguita quando la string letterale a virgolette doppie (che nel tuo caso è memorizzata in $rowmk->longdescription lunga è daclarata.) Una volta terminato, non puoi fare nulla per riavere i $ s.

Soluzione, fai la corretta escaping, quando dichiari la string.

Oppure puoi echo string letterale usando le virgolette singole …

 <?php echo 'Give me $1'; ?> 

stamperà:

Dammi $ 1

Documenti string PHP:

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

Nota a margine: il link che hai fornito ha molte risposte che functionrebbero perfettamente. Come li stai applicando in un modo che non funziona?

Basta usare una singola string quotata.

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

Presumo che tu legga le tue righe da un database. I segni del dollaro all'interno di queste stringhe non saranno interpolati da php. Ecco un piccolo script di prova per provarlo:

  // 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>"; } 

L'ho fatto usando questo

 echo "$" . "VariableName";