preg_replace('/http:///ftp:///', 'https://', $value);
http:// and ftp:// inside $value should be replaced with https://
This code gives error:
preg_replace() [function.preg-replace]: Unknown modifier '/'
What is a true regex for this task?
Try using a different delimiter, say
#:or (less recommended) escape every occurrence of the delimiter in the regex:
Also you are searching for the pattern
http:///ftp://which really does not make much sense, may be you meanthttp://|ftp://.You can make your regex shorter as:
Understanding the error:
Unknown modifier '/'In your regex
'/http:///ftp:///', the first/is considered as starting delimiter and the/after the:is considered as the ending delimiter. Now we know we can provide modifier to the regex to alter its default behavior. Some such modifiers are:i: to make the matching caseinsensitive
m: multi-line searchingBut what PHP sees after the closing delimiter is another
/and tries to interpret it as a modifier but fails, resulting in the error.preg_replacereturns the altered string.