bschultz Posted August 31, 2010 Share Posted August 31, 2010 I have a problem. I need to replace all ‘ and ” (both forward and backwards...both single and double quotes) with ' and " So, this sentence: ‘Our alumni are the reason we are in the position we are today,” Would read: 'Our alumni are the reason we are in the position we are today," The problem is, I don't even know which key on the keyboards makes the marks I'm trying to remove. I will also want to addslashes to this prior to input into the database. So, how do I make those marks...is preg_replace better or worse than str_replace? Is there something better than addslashes? Is there something that will do both at once? Thanks. Link to comment https://forums.phpfreaks.com/topic/212148-i-need-to-replace-certain-characters/ Share on other sites More sharing options...
RussellReal Posted August 31, 2010 Share Posted August 31, 2010 u don't need preg_replace.. you could just copy/paste the symbols into replace() and replace them as needed Link to comment https://forums.phpfreaks.com/topic/212148-i-need-to-replace-certain-characters/#findComment-1105512 Share on other sites More sharing options...
bschultz Posted August 31, 2010 Author Share Posted August 31, 2010 I finally got this...once I learned that these little guys were called "Smart Quotes" it made it easier to deal with. For anyone else who needs it... <?php //Include database connection details require_once('config.php'); //Array to store validation errors $errmsg_arr = array(); //Validation error flag $errflag = false; //Connect to mysql server $link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD); if(!$link) { die('Failed to connect to server: ' . mysql_error()); } //Select database $db = mysql_select_db(DB_DATABASE); if(!$db) { die("Unable to select database"); } //Function to sanitize values received from the form. Prevents SQL injection function clean($str) { $str = @trim($str); if(get_magic_quotes_gpc()) { $str = stripslashes($str); } return mysql_real_escape_string($str); } //Sanitize the POST values $sport = clean($_POST['sport']); $headline = clean($_POST['headline']); $story = $_POST['story']; $keyword = clean($_POST['keyword']); $date = date('Y-m-d, g:i a'); $show_on_main = clean($_POST['show_on_main']); $find[] = '“'; // left side double smart quote $find[] = 'â€'; // right side double smart quote $find[] = '‘'; // left side single smart quote $find[] = '’'; // right side single smart quote $find[] = '…'; // elipsis $find[] = '—'; // em dash $find[] = '–'; // en dash $replace[] = '\"'; $replace[] = '\"'; $replace[] = "\'"; $replace[] = "\'"; $replace[] = "..."; $replace[] = "-"; $replace[] = "-"; $clean_story = str_replace($find, $replace, $story); function replace_newline($string) { return (string)str_replace(array("\r", "\r\n", "\n"), '', $string); } $cleaner_still = replace_newline($clean_story); $cleaner_story = addslashes($cleaner_still); //Input Validations if($sport == '') { $errmsg_arr[] = 'Sport missing'; $errflag = true; } if($headline == '') { $errmsg_arr[] = 'Headline missing'; $errflag = true; } if($clean_story == '') { $errmsg_arr[] = 'Story missing'; $errflag = true; } if($keyword == '') { $errmsg_arr[] = 'Keyword missing'; $errflag = true; } if($show_on_main == '') { $errmsg_arr[] = 'show_on_main missing'; $errflag = true; } //Check for duplicate keyword if($login != '') { $qry = "SELECT * FROM stories WHERE keyword='$keyword'"; $result = mysql_query($qry); if($result) { if(mysql_num_rows($result) > 0) { $errmsg_arr[] = 'That keyword is already in use. Please enter a different keyword.'; $errflag = true; } @mysql_free_result($result); } else { die("Query failed"); } } //If there are input validations, redirect back to the registration form if($errflag) { $_SESSION['ERRMSG_ARR'] = $errmsg_arr; session_write_close(); header("location: story_entry.php"); exit(); } //Create INSERT query $qry = "INSERT INTO stories(sport, date, headline, story, keyword, show_on_main) VALUES('$sport', NOW(),'$headline','$cleaner_story','$keyword','$show_on_main')"; $result = @mysql_query($qry); //Check whether the query was successful or not if($result) { header("location: story_entry.php"); exit(); }else { die("Query failed"); } ?> Link to comment https://forums.phpfreaks.com/topic/212148-i-need-to-replace-certain-characters/#findComment-1105635 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.