php функция уникализации текста

X
На сайте с 28.06.2008
Offline
23
1234

Нужна функция принимающая в параметре текст, или путь к файлу, и возращающая уникальный текст.

Создание сайтов, вёрстка, php скрипты
(http://websprojects.ru/ysl.html)
Solmyr
На сайте с 10.09.2007
Offline
501
#1

md5()..................

nipler
На сайте с 04.07.2008
Offline
93
#2

Solmyr, посмеялся :)

xwebsx, вот какой то класс валялся, думаю разберетесь


<?php
/**
* Синоминайзер, перемешиватель абзацев и предложений
*
*/
class synonymizer{

/**
* Символ разделения параграфов
*
* @var string
*/
private $paragraph_symbol;

/**
* Использовать в качестве синонима оригинал слова
*
* @var boolean
*/
private $synonym_original;
/**
* Путь к файлу базы
*
* @var string
*/
private $synonym_base_path;
/**
* оставлять рисунки
*
* @var boolean
*/
private $image_save;

/**
* конструктор класса
*
*/
public function __construct($parSymb="</p>", $synOriginal=false, $basePath="synbase.dat", $saveImage=true){
$this->paragraph_symbol=$parSymb;
$this->synonym_original=$synOriginal;
$this->synonym_base_path=$basePath;
$this->image_save=$saveImage;
}

/**
* Основная функция класса
*
* @param string $text - входной текст для изменения
* @param boolean $use_synonymizer - использовать синоминайзер?
* @param boolean $mashup_paragraph - перемешивать параграфы?
* @param boolean $mashup_sentence - перемешивать предложения в параграфах?
* @return string - измененный текст
*/
public function change_text($text, $use_synonymizer=true, $mashup_paragraph=true, $mashup_sentence=true){

if ($use_synonymizer){
$text=$this->synonymizer($text);
}

if ($mashup_paragraph||$mashup_sentence){
$paragraphs = preg_split("/".str_replace("/", "\/", $this->paragraph_symbol)."+?/", $text, -1, PREG_SPLIT_DELIM_CAPTURE|PREG_SPLIT_NO_EMPTY);
if ($mashup_paragraph){
srand((float) microtime() * 10000000);
shuffle($paragraphs);
}
if ($mashup_sentence){
foreach ($paragraphs as $key => $paragraph) {

if ($this->image_save) preg_match_all("/<img[^>]+>/",$paragraph,$images);
$paragraph = strip_tags($paragraph);
if ($this->paragraph_symbol == "</p>")
$paragraphs[$key] = "<p>";
else
$paragraphs[$key] = "";
if (!empty($images[0])) $paragraphs[$key] .= $this->mashup_sentence($paragraph)."<br/>".implode("<br/>", $images[0])."<br/>";
else $paragraphs[$key] .= $this->mashup_sentence($paragraph);
}
}
$text=join($paragraph_symbol, $paragraphs) . $paragraph_symbol;
}

return $text;
}
/**
* функция для перемешивания предложений в параграфах
*
* @param string $text - входной текст для изменения
* @return string - измененный текст
*/
private function mashup_sentence($text) {
$sentences = preg_split("/([\.\!\?])\s/", trim($text), -1, PREG_SPLIT_DELIM_CAPTURE|PREG_SPLIT_NO_EMPTY);
/* $sentences5 = preg_split("/(<img+?>)\s/", trim($text), -1, PREG_SPLIT_DELIM_CAPTURE|PREG_SPLIT_NO_EMPTY);*/
// print_r($sentences);
$sentences2 = array();
$num = 0;
foreach($sentences as $key => $sentence) {
if ($sentence == "." || $sentence == "!" || $sentence == "?") {
$sentences2[$num - 1] .= $sentence;
continue;
}
$sentences2[$num] .= trim($sentence);
$num++;
}

srand((float) microtime() * 10000000);
shuffle($sentences2);
return join(" ", $sentences2);
}


/**
* Функция для замены слов синонимами
*
* @param string $text - входной текст для изменения
* @return string - измененный текст
*/
private function synonymizer($text){
$handle = fopen("./".$this->synonym_base_path, "r");
$contents = ''; $i=0;
while (!feof($handle)) {
$buffer = fgets($handle, 4096);
$marr=explode("=",$buffer);
$original=$marr[0];
$synarr=explode(",",$marr[1]);
if($this->synonym_original)$synarr[]=$original;
$syn=$synarr[rand()%count($synarr)];
$text=str_replace(" ".$original." "," ".$syn." ",$text);
$text=str_replace(" ".$original.","," ".$syn.",",$text);
$text=str_replace(" ".$original."."," ".$syn.".",$text);
// $text=preg_replace("/([\.\!\?\s])".$original."([\.\!\?\s])/","$1".$syn."$2",$text);
$i++;
}
fclose($handle);
return $text;
}

}

?>
Быстропост – система автоматической монетизации (http://bystropost.ru/partner/248) Удобный бесплатный инструмент для вебмастера и оптимизатора (http://site-control.ru/)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий