Jump to content

[SOLVED] Please help str replace function is not working


AnthonyArde

Recommended Posts

Trying to find and replace characters .....it looks like it cant replace the characters - and '      if i replace with other characters it works, please also check my update statement, not sure on that either. mysql throws me a syntax error with this code.

 

 

 

Code:

if (!$con)

  {

  die('Could not connect: ' . mysql_error());

  }

  mysql_select_db("phpb3forum", $con);

  $result = mysql_query("SELECT * FROM phpbb_posts_text WHERE post_id = 5442");

  while($row = mysql_fetch_array($result))

  {

 

$cat = str_replace("‘", "'", $row['post_text']);

$cat = str_replace("–", "-", $cat);

$cat = str_replace("’", "'", $cat);

echo $cat;

 

 

$pid = 5442;

$query="update phpbb_posts_text

set post_text = '$cat'

where post_id = $pid";

 

mysql_query($query) or

die (mysql_error());

  }

 

  mysql_close($con);

 

it looks like it cant replace the characters - and '      if i replace with other characters it works, please also check my update statement, not sure on that either.

Thanks

Anthony.

Here's a working function.. add it into your script. =]

function filterbadwords($str){


// words to filter

$badwords=array( "â€","–","’");

// replace filtered words with

$replacements=array("-");
$words = explode(" ", $str);
$out_words = "";

for($i = 0; $i < count($words); $i++){



if(in_array(str_replace(".", "", $words[$i]), $badwords)){



$out_words[] = $replacements[0];



}else{



$out_words[] = $words[$i];



}
  }
  
return implode(" ", $out_words);
}

Your sql will throw an error if you have unescaped single quotes in your string.

 

Use:

<?php
$query="update phpbb_posts_text set post_text = '" . mysql_real_escape_string($cat) . "' where post_id = $pid";
?>

 

Ken

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.