Parsing is a concept borrowed from grammar. When you parse a sentence, you actually sort out all the different bits and what they do so that you can understand the sentence.
For example, the first sentence in this post can be parsed like this:
Subject (noun phrase): "Parsing"
Predicator (verb phrase): "is"
Object (noun phrase): "a concept borrowed from grammar"
(Before any purists argue: Yes, in English grammar, the complement of "to be" is an object, so there.)
The object itself can be broken down into a noun phrase and an adjectival phrase.
You do this automatically in your brain, and this allows to work out the relationships between all the different words and so on.
Programming, scripting and markup languages have to be parsed in a similar way. The PHP parser breaks down a line of code into keywords, identifiers, values and so on.
Strings can be delimited by single or double quotes. But what happens if you want to include a quote inside your string? Take this line:
$quote="Hamlet said, "To be or not to be".";
The parser finds the identifier $quote, then the assignment operator = (which means "assign what's on the right of this operator to the identifier on the left"), then the double quote " which means, "From now until the next double quote is a literal string". It gets as far as:
"Hamlet said, "
...and that second double quote means, "The string ends here." Now the PHP parser is expecting something like a semicolon or a concatenation operator. Instead, it sees something it can't make sense of: what does To mean? It's not an operator, it's certainly not a semicolon, and it doesn't exist in PHP.
The backslash "escapes" the double quote: it means "Don't interpret the next character the way you normally do -- it's part of the string". So you have to write:
$quote="Hamlet said, \"To be or not to be\".";
When reading in values from form input fields, PHP automatically adds backslashes to escape all such characters -- just in case. But when you print them out on screen, because of the way it works, the backslashes actually get printed too. (This is because you're not printing a literal string, you're printing out the value of a variable.) To get around this, there is a function called stripslashes()
Use this when printing values taken from form input fields and databases, and the backslashes wil magically disappear.