On 3/15/2010 5:03 PM, Jim Lucas wrote:
Al wrote:Anyone have a regex pattern for deleting multiple backslashes e.g., \\\\\\\ I pretty good with regex; but, be damned if I can delete them with preg_replace() I've tried "\\\\" as the manual says preg_replace("/\\\\/", '', $str); preg_replace("/(\\\\)+/", '', $str); preg_replace("/\x5C/", '', $str); preg_replace("/\\x5c/", '', $str); And lots of others. stripslashes() and stripcslashes() are limited.Might I ask, how are the multiple slashes getting generated in the first place? Where is the data coming from? Next question would be: Do you want to completely remove all instances of multiple backslashes? Or, do you want to replace all instances of multiple backslashes with a single backslash? I would try something like this: <plaintext><?php $in = '\\\as\\\\asdf\\\asdf\asdf\\\\\asdf\\\\\asdf'; # to remove all backslashes, us this echo preg_replace('|[\\\\]+|', '', $in).PHP_EOL; # to remove all backslashes, us this echo str_replace('\\', '', $in).PHP_EOL; # to replace consecutive instances of backslashes with a single backslash echo preg_replace('|[\\\\]+|', '\\', $in).PHP_EOL; ?> done!
As I reported earlier, problem was my code was reloading a POST array following the backlash removal. Dumb error on my part.
Re: "Might I ask, how are the multiple slashes getting generated in the first place? Where is the data coming from?" It comes from a client-side editor where users can enter them at will. It is my standard practice to do a good job of protecting users from themselves. I originally just had the usual stripslashes() but found it didn't take care of users adding several.
-- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php

