Escaping quotation marks in PHP

后端 未结 7 2044
醉梦人生
醉梦人生 2020-11-21 23:49

I am getting a parse error, and I think it\'s because of the quotation marks over \"time\". How can I make it treat it as a whole string?



        
相关标签:
7条回答
  • 2020-11-22 00:30

    Either escape the quote:

    $text1= "From time to \"time\"";
    

    or use single quotes to denote your string:

    $text1= 'From time to "time"';
    
    0 讨论(0)
  • 2020-11-22 00:32

    You can use the PHP function addslashes() to any string to make it compatible

    0 讨论(0)
  • 2020-11-22 00:33
    $text1= "From time to \"time\"";
    

    or

    $text1= 'From time to "time"';
    
    0 讨论(0)
  • 2020-11-22 00:41

    Save your text not in a PHP file, but in an ordinary text file called, say, "text.txt"

    Then with one simple $text1 = file_get_contents('text.txt'); command have your text with not a single problem.

    0 讨论(0)
  • 2020-11-22 00:50

    Use a backslash as such

    "From time to \"time\"";
    

    Backslashes are used in PHP to escape special characters within quotes. As PHP does not distinguish between strings and characters, you could also use this

    'From time to "time"';
    

    The difference between single and double quotes is that double quotes allows for string interpolation, meaning that you can reference variables inline in the string and their values will be evaluated in the string like such

    $name = 'Chris';
    $greeting = "Hello my name is $name"; //equals "Hello my name is Chris"
    

    As per your last edit of your question I think the easiest thing you may be able to do that this point is to use a 'heredoc.' They aren't commonly used and honestly I wouldn't normally recommend it but if you want a fast way to get this wall of text in to a single string. The syntax can be found here: http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc and here is an example:

    $someVar = "hello";
    $someOtherVar = "goodbye";
    $heredoc = <<<term
    This is a long line of text that include variables such as $someVar
    and additionally some other variable $someOtherVar. It also supports having
    'single quotes' and "double quotes" without terminating the string itself.
    heredocs have additional functionality that most likely falls outside
    the scope of what you aim to accomplish.
    term;
    
    0 讨论(0)
  • 2020-11-22 00:52

    Use the addslashes function:

     $str = "Is your name O'Reilly?";
    
     // Outputs: Is your name O\'Reilly?
       echo addslashes($str);
    
    0 讨论(0)
提交回复
热议问题