Escaping Quotation Marks in PHP

Escaping quotation marks in PHP

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;

what is the point of escaping quotation marks in php

Escaping the quotation marks inside a string prevents them from ending the string. For example:

$str = "Hi this is a "broken" string";

Essentially the PHP parser sees multiple statments: "Hi this is a", broken, and "string ". It becomes an invalid line of code.

When the parser encounters the first quotation mark, it knows it's found a string, and it knows that the next quotation mark tells it where the string ends. If you want to have quotation marks inside your string, you need to tell the parser that they aren't the end of the string by escaping them with backslashes in front.

If you start your string with single quotes, ', then you only need to escape single quotes inside your string. Same with double quotes. These two lines are both valid code:

$str = "This string is 'not' broken";
$str = 'This string is also "not" broken';

You just have to watch for whichever one you used to open and close the string.

How to escape double quotation marks in php? / is not working

Change it to:

<option value="<?= $stock("symbol") ?>" > <?= $stock("symbol") ?></option>

You were escaping quotes that didn't need to be escaped.

Escaping quotation marks in PHP for JavaScript function argument

The addslashes() function is an obsolete hang-over from PHP's early days; it is not suitable for any escaping. Don't use it. Ever. For anything. -Spudley

I think the function you're looking for is htmlentities()

<?=htmlentities($desc1, ENT_QUOTES)?>

http://ca1.php.net/htmlentities

How do I escape only single quotes?

Quite simply: echo str_replace('\'', '\\\'', $myString);
However, I'd suggest use of JSON and json_encode() function as it will be more reliable (quotes new lines for instance):

<?php $data = array('myString' => '...'); ?>

<script>
var phpData = <?php echo json_encode($data) ?>;
alert(phpData.myString);
</script>


Related Topics



Leave a reply



Submit