javascript
  • php
  • html
  • encoding
  • 2014-05-10 3 views 1 likes 
    1

    사용자 HTML 입력을 받아 PHP 전자 메일의 사람이 읽을 수있는 형식으로 변환하는 작은 응용 프로그램을 만들고 있습니다.


    입력 :JS 인코딩 HTML 태그가 작동하지 않습니다.

    <html> 
        <a href="file.ext">file</a> 
    </html> 
    

    나는 그 (텍스트 형식)로 나올하려면 :

    <?php 
        $message = "<html>" 
        . "<a href='file.ext'>file</a>" 
        . "</html>"; 
    ?> 
    

    내가 구문과 모든 작업을 가지고 있지만, 내 문제는 HTML 태그입니다. 비록 내가 그들을 인코딩했다고해도 (\x3C, \x3E), 그들은 여전히 ​​HTML로 표시됩니다 - 그래서 나는 텍스트 출력 대신 링크를 얻습니다. 나는 또한 &gt;&lt;을 시도했습니다. 따옴표 (\x22/\x27)가 작동합니다.

    내 JS (사용하여 jQuery를)

    function convert() { 
    $("#result").html("&lt;?php<br/>$message = "); 
    var text = $("#html").val(); 
    text = text.split("\n"); 
    $("#html").val(""); 
    for(var i=0; i<text.length; i++) { 
        text[i].replace("'","\x27"); 
        text[i].replace('"',"\x27"); 
        text[i].replace("<","\x3C"); 
        text[i].replace(">","\x3E"); 
        if(i<(text.length-1)) { 
         if(i==0) { 
          var line = "\x22"+text[i]+"\x22"; 
          $("#result").append(line+"<br/>"); 
         } 
         else { 
          var line = ". \x22"+text[i]+"\x22"; 
          $("#result").append(line+"<br/>"); 
         } 
        } 
        else { 
         var line = ". \x22"+text[i]+"\x22"; 
         $("#result").append(line+";<br/>?>"); 
        } 
    } 
    } 
    

    이 작동하지 않는 이유 사람이 알고 있나요?

    답변

    2

    HTML 문자열을 매개 변수로 사용하여 DOM에 요소를 추가하는 "append"를 사용하고 있기 때문일 수 있습니다.

    append()를 text()로 바꾸어 보았습니까? 내가 텍스트 문자열을 사용하여 HTML 문자열을 시도하고 내 마지막에 잘 작동합니다.

    공지 사항의 차이 그 두 가지 방법을 사용하여 :

    var line = '<a href="#">foobar</a>'; 
    
    // string 
    $('#result').text(line+"<br/>"); 
    
    // OR string with the element's prior text value 
    var str = $('#result').text(); 
    $('#result').text(str + line + "<br/>"); 
    
    // element 
    $('#result').append(line+"<br/>"); 
    

    희망하는 데 도움이됩니다.

    +0

    감사 :) 당신이 그것을 호출 할 때마다 텍스트가 전체 요소의 텍스트를 대체하지 않습니까? – ArtOfCode

    +0

    그래. 편집을 확인하십시오. 당신은 단지 현재의 텍스트 값을 저장하고 text 메소드 안에 새로운 문자열 값으로 연결하기를 원할 것입니다. – alex

    +0

    네, 충분히 쉽습니다. 고마워, 내가 그걸 줄께. – ArtOfCode

    관련 문제