2012-02-27 4 views
4

기본적으로 나는 페이지에 echo하고 싶은 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

+0

html에 달러 기호가 있고이 문자열을 에코하려고하면 PHP는 $ 기호가 변수 접두사라고 가정하지 않습니다. 단지 텍스트를 인쇄합니다. 따라서 첫 번째 코드 블록에 또 다른 문제가 있다고 생각합니다. 템플릿에서 eval()을 사용하고 있지 않습니까? – halfer

+0

@Matthew하지만'$ dollar = "$"; echo $ dollar;'작동하지 않습니다! –

답변

1

잘못된 장소에서 작업하고 있습니다. 귀하의 경우 $rowmk->longdescription에 저장되는 문자를 두 번 인용 문자열 (daclared 때 변수 보간은 당신이 일을 끝낼되면, 당신이 정말로 당신의 $의 다시를 얻을 아무것도 할 수 없습니다. 행해진 다.

솔루션, 적절한 이스케이프를 수행 할 때 당신은 문자열을 선언

+0

감사합니다. 나는 몰랐다. ... –

11

아니면 작은 따옴표를 사용하여 리터럴 문자열을 에코 할 수 ...

<?php 

echo 'Give me $1'; 

?> 

인쇄됩니다

것은 나에게 $ (1)

PHP 문자열을 지정 문서 :

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

사이드 노트 - 제공하는 링크는 완벽하게 작동하는 여러 가지 답변이 있습니다. 어떻게 작동하지 않는 방식으로 적용하고 있습니까?

+0

이것은 실제로 그의 문제에 대답하지 않습니다. 그는 이미 작은 따옴표를 사용하고 있습니다.그는 우리에게 보여주지 않는 다른 일을해야합니다. – Matthew

+0

그는 이미 작은 따옴표를 사용하고 있지는 않지만 귀하의 요점을 보았습니다. 그는 $ db에서 울리고 있기 때문에 원시 상태의 출력을 완전히 제어 할 수 없을 수도 있습니다. 그래서 그는 자신의 솔루션을 보여줍니다. 입력 할 때마다 데이터를 인코딩하는 것이 훨씬 쉽지만 모든 읽기에는 데이터를 인코딩하는 것이 쉽지 않습니다. 여전히, db로부터 echo하는 것은 $를 평가해서는 안된다. 얼마나 치명적인 지 상상해보십시오. –

+0

내 longdescription 필드는 html로, 그 안에 달러 값이있는 열이있는 테이블입니다 (예 : $ 5). $ 5는 변수로 해석되었습니다. '$ s'를 울리는 것은 테이블을 출력하지 않고 $ s를 출력했습니다. –

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, 슬프게도 그들은 변수로 해석되고 있었다. –

-1

내가 한이 이것을 사용하는 것

echo "$" . "VariableName";