命名空间中如何实现全部单词替换
DataCleaner.inc.php:
- PHP code
<?php namespace DataCleaner; class Clean { function RemoveProfanity($text) { $badwords = array( "idiotic" => "shortsighted", "moronic" => "unreasonable", "insane" => "illogical" ); // Remove bad words foreach ($badwords as $key => $value) { if (strpos($text, $key) !== false) return str_replace($key, $value, $text); } } } ?>
Library.inc.php:
- PHP code
<?php namespace Library; class Clean { function FilterTitle($text) { // Trim white space and capitalize first word return ucfirst(trim($text)); } } ?>
index.php:
- PHP code
<?php include "DataCleaner.inc.php"; include "Library.inc.php"; $data = new DataCleaner\Clean(); $library = new Library\Clean(); $title = "the moronic sun also rises idiotic insane"; printf("Title before filters: %s
", $title); $title = $data->RemoveProfanity($title); printf("Title after Data::Clean: %s
", $title); $title = $library->FilterTitle($title); printf("Title after Library::Clean: %s
", $title); ?>
输出:
Title before filters: the moronic sun also rises idiotic insane
Title after Data::Clean: the moronic sun also rises shortsighted insane
Title after Library::Clean: The moronic sun also rises shortsighted insane
怎么实现把所有的
"idiotic" => "shortsighted",
"moronic" => "unreasonable",
"insane" => "illogical"
这些词都替换成相应的单词??
------解决方案--------------------
foreach ($badwords as $key => $value) {
if (strpos($text, $key) !== false)
return str_replace($key, $value, $text);
}
=================
修改为
return strtr($text, $badwords);