Originally Posted by
ShawnCplus
... I'm not entirely sure why'd you write your own function when the built-in addslashes function works perfectly well.
Aye, I was wondering the same thing.
addslashes() is slightly different - it escapes a couple of extra characters (including '\' and NUL). However, these (especially \) need to be escaped anyway.
So, to fill in the original example...
$unedited = $_POST['content'];
$content = addslashes($unedited);
However, you might be looking to learn how to use preg_replace... so we'll go back to the original example.
You can use
preg_replace() like Fungus did with str_replace - sending an array as the search and replacement parameters.
The problem with your example is that you're only presenting one thing for the replacement parameter - "\'".
In order to replace ' with \' and " with \" you need to do one of a few things - perform two preg_replaces (one for each replacement), use arrays within the preg_replace, or use a variable in the regex to print the quote based on what the search found. I'm not that good with regex, so I'm not sure if you can do that... but I think you can.
Anyhow, here's an example of how you could use arrays to perform the desired function with preg_replace.
$string = "\"You're not very wise,\" said the wise man.";
$string = preg_replace(array("/'/", '/"/'), array("\'", '\"'), $string);
echo $string;
That appears to escape both the single and double quotes just fine.
Good luck,
- Walkere