[php] Escaping quotation marks in PHP

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?

<?php
    $text1 = 'From time to "time" this submerged or latent theater in 'Hamlet'
    becomes almost overt. It is close to the surface in Hamlet's pretense of madness,
    the "antic disposition" he puts on to protect himself and prevent his antagonists
    from plucking out the heart of his mystery. It is even closer to the surface when
    Hamlet enters his mother's room and holds up, side by side, the pictures of the
    two kings, Old Hamlet and Claudius, and proceeds to describe for her the true
    nature of the choice she has made, presenting truth by means of a show.
    Similarly, when he leaps into the open grave at Ophelia's funeral, ranting in
    high heroic terms, he is acting out for Laertes, and perhaps for himself as well,
    the folly of excessive, melodramatic expressions of grief.";

    $text2 = 'From time to "time"';

    similar_text($textl, $text2, $p);
    echo "Percent: $p%";

The problem is that I can't manually add \ before every quotation mark. This is the actual text I need to compare.

This question is related to php

The answer is


Either escape the quote:

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

or use single quotes to denote your string:

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

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.


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

or

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

Use the addslashes function:

 $str = "Is your name O'Reilly?";

 // Outputs: Is your name O\'Reilly?
   echo addslashes($str);

Use htmlspecialchars(). Then quote and less / greater than symbols don't break your HTML tags~


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