Smudly Posted October 22, 2010 Share Posted October 22, 2010 I'm having an issue with users uploading files with a Semi Colon in the file name. I am currently using a script that replaces characters within the file name, however, when I try to add a ";" as invalid characters to replace, it is like the semi-colon just stops the script, as the file does not upload (no errors are displayed). Here's the code I'm working with: $valid_chars_regex = '.A-Z0-9_ !@#$%^&()+={}\[\],~`-'; $file_name = preg_replace('/[^'.$valid_chars_regex.']|\'.+$/i', "", basename($_FILES[$upload_name]['name'])); if (strlen($file_name) == 0 || strlen($file_name) > $MAX_FILENAME_LENGTH) { HandleError("Invalid file name"); exit(0); } I tried placing the semi colon all over the place in the preg_replace function, but nothing seems to work. How can I do this? Link to comment https://forums.phpfreaks.com/topic/216528-replacing-a-semicolon-in-a-string/ Share on other sites More sharing options...
atrum Posted October 22, 2010 Share Posted October 22, 2010 You have to escape the semi-colon I think. So put a backslash before the semi-colon Link to comment https://forums.phpfreaks.com/topic/216528-replacing-a-semicolon-in-a-string/#findComment-1125071 Share on other sites More sharing options...
dreamwest Posted October 22, 2010 Share Posted October 22, 2010 Theres a better way without using preg_replace, you can even replace regex patterns $remove = array(';',"'",'/'); $file_name = str_replace($remove,'',basename($_FILES[$upload_name]['name']); see so much simpler.. Link to comment https://forums.phpfreaks.com/topic/216528-replacing-a-semicolon-in-a-string/#findComment-1125134 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.