1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
|
<?php
/**
* Replace is a helper class for zophCode
*
* This file is part of Zoph.
*
* Zoph is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* Zoph is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* You should have received a copy of the GNU General Public License
* along with Zoph; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
* @author Jeroen Roos
* @package Zoph
*/
namespace zophCode;
/**
* Replace problematic code in zophcode with escaped code
* @author Jeroen Roos
* @package Zoph
*/
class replace {
/** @var string to replace */
public $find;
/** @var string to replace with */
public $replace;
/** @var array List of all replaces */
private static $replaces=array();
/**
* Create a new replace object
* @param string to replace
* @param string to replace with
*/
private function __construct($find, $replace) {
$this->find=$find;
$this->replace=$replace;
}
/**
* Run the replaces on a message
* @param string Message
* @return string Message with problematic code changed
*/
public static function processMessage($msg) {
$find=array();
$replace=array();
foreach (static::getArray() as $repl) {
array_push($find, "/" . preg_quote($repl->find) . "/");
array_push($replace, $repl->replace);
}
return preg_replace($find, $replace, $msg);
}
/**
* Get an array of all replace objects
*/
private static function getArray() {
if (empty(static::$replaces)) {
static::createArray();
}
return static::$replaces;
}
/**
* Fill the static $replaces.
*/
private static function createArray() {
// Watch the order of these... putting & at the end of the array
// will make you end up with things like "&lt;"...
static::$replaces=array(
// The first two are needed to revert anti SQL injection-code
new replace("(", "("),
new replace(")", ")"),
new replace("&", "&"),
new replace("<", "<"),
new replace(">", ">"),
new replace("\n", "<br>")
);
}
}
?>
|