note 58317 added to function.str-replace

From: Date: Mon, 31 Oct 2005 11:55:57 +0000
Subject: note 58317 added to function.str-replace
Groups: php.notes 
Request: Send a blank email to php-notes+get-97876@lists.php.net to get a copy of this message
<? # This is a complete profanity filter. I couldn't get any of the preg_replace statements working, so I made one that is CASE INSENSITIVE, SPACE INSENSITIVE too. $original="This contains curseword, curse_word1, cursewor_d2, cursewo_rd3, and a bunch of other text..."; echo "Before: $original<br><br>"; $original=RemoveCurseWords($original); echo "After: $original<br><br>"; function RemoveCurseWords($original) { $patterns[0] = 'curseword'; $patterns[1] = 'curse_word1'; $patterns[2] = 'cursewor_d2'; $patterns[3] = 'cursewo_rd3'; $finalremove=$original; $piece_front=""; $piece_back=""; $piece_replace="***"; for ($x=0; $x < count($patterns); $x++) { $safety=0; # Prevents infinity loops if you accidentally put in replacements that match your patterns. it could happen! :) # The saftey could cause issues if you are replacing more than 100,000 occurrences in a string, so remove it if you trust it. while(strstr(strtolower($finalremove),strtolower($patterns[$x]))) { # find & remove all occurrence $safety=$safety+1; if ($safety >= 100000) { break; } $occ=strpos(strtolower($finalremove),strtolower($patterns[$x])); $piece_front=substr($finalremove,0,$occ); $piece_back=substr($finalremove,($occ+strlen($patterns[$x]))); $finalremove=$piece_front . $piece_replace . $piece_back; } # while } # for return $finalremove; }# function RemoveCurseWords ---- Manual Page -- http://www.php.net/manual/en/function.str-replace.php Edit -- http://master.php.net/manage/user-notes.php?action=edit+58317 Delete: added to the manual -- http://master.php.net/manage/user-notes.php?action=delete+58317&report=yes&reason=added+to+the+manual Delete: bad code -- http://master.php.net/manage/user-notes.php?action=delete+58317&report=yes&reason=bad+code Delete: spam -- http://master.php.net/manage/user-notes.php?action=delete+58317&report=yes&reason=spam Delete: useless -- http://master.php.net/manage/user-notes.php?action=delete+58317&report=yes&reason=useless Delete: non-english -- http://master.php.net/manage/user-notes.php?action=delete+58317&report=yes&reason=non-english Delete: already in docs -- http://master.php.net/manage/user-notes.php?action=delete+58317&report=yes&reason=already+in+docs Delete: other reasons -- http://master.php.net/manage/user-notes.php?action=delete+58317&report=yes Reject -- http://master.php.net/manage/user-notes.php?action=reject+58317&report=yes Search -- http://master.php.net/manage/user-notes.php

« previous php.notes (#97876) next »