Lexikon
Nux писал:
ibiz: +1
например так:
function random($filename) {
$lines = file($filename);
shuffle($lines);
return $lines[0];
}
хотя если данных очень много более быстрым будет вариант вызова по случайному ключу.
тоже самое только теперь цикл повторов длинее стал
если был 8-10 то теперь 69-78
может как то сам код неправильно выстроен
вот сам код:
set_time_limit(0); // Снимаем ограничение времени на работу скрипта.
require_once "syn.php";
$width = $_POST[ 'width' ]; // Ширина видео и изображения.
$height = $_POST[ 'height' ]; // Высота видео и изображения.
$impData = $_POST[ 'exdata' ]; // Данные из главного окна формы.
$seperated = $_POST[ 'seperated' ]; // Разделитель.
$expData = "expdata.dat"; // Файл в который будут записываться экспортные данные.
$tagsFile = "tags.txt"; // Файл с Тегами.
$keysFile = "keys.txt"; // Файл с Кивордами.
$linksFile = "links.txt"; // Файл с Тайтлами на платник.
$topTitleFile = "toptitle.txt"; // Файл с Тайтлами для продолжения "Watch FREE..."
$face = file_get_contents("embed.tpl"); // Получить содержимое файла в виде одной строки.
$lines = explode( "\n", $impData ); // Разбиваем полученные строковые данные из формы на подстроки.
$count = count( $lines ); // Считаем коичество элементов массива для цикла.
function random($filename) { // ФУНКЦИЯ ДЛЯ РАНДОМНОЙ ВЫДАЧИ ДАННЫХ.
$lines = file($filename);
shuffle($lines);
return $lines[0];
}
// ------------------------------------------------
function getLimitText($text, $limit) { // ФУНКЦИЯ ОГРАНИЧЕНИЯ ТЕКСТА.
$strlen = strlen($text);
if ($strlen > $limit)
{
$text = preg_replace( "/[\r\n\t]/", "", $text );
$str = '';
$text = substr( $text, 0, $limit );
$words = explode( " ", $text );
$k = count($words) - 1;
$n = 0;
while ($n < $k)
{
$str .= $words[$n++].' ';
}
$text = trim($str)."...";
}
else
{
$text = trim($text);
}
return $text;
}
// ------------------------------------------------
function getStr($str) { // ФУНКЦИЯ РЕДАКТИРОВАНИЯ ОКОНЧАНИЯ ПРЕДЛОЖЕНИЯ.
$str = trim($str);
if ( ($str{strlen($str)-1} == '.') or ($str{strlen($str)-1} == '!') or ($str{strlen($str)-1} == '?') ) {
$str;
}
elseif ( ($str{strlen($str)-1} == ',') or ($str{strlen($str)-1} == ':') or ($str{strlen($str)-1} == ';') ) {
$str = substr($str,0,-1);
$str = $str.".";
}
else {
$str = $str.".";
}
return $str;
}
// ------------------------------------------------
function domain($str){ // ФУНКЦИЯ ПОЛУЧЕНИЯ ДОМЕНА ИЗ URL.
$domain = parse_url($str);
$domain = $domain['host'];
$arr_domain = explode(".", $domain);
$res = array_reverse($arr_domain);
$result = "$res[1].$res[0]";
$result = strtolower($result);
return $result;
}
// ------------------------------------------------
for( $i = 0; $i < $count; $i += 1 ) // Запускаем цикл для обработки данных из главного окна формы.
{
$content = $face;
// Функцией explode() разбиваем строку на подстроки и list() присваеваем значения списку переменных.
list($flv, $img, $titleMain, $descMain, $paySite) = explode( $seperated, stripslashes($lines[ $i ]) );
$cPaySite = urlencode( $paySite ); // кодированный URL платника для ембед.
$titleMainShort = getLimitText($titleMain, 200); // создаем ограниченную длину тайтла для создания имен будущих файлов (т.к. длина имяни файла в windows не должна превышать 255 символов).
$titleMainShort = syn($titleMainShort);
$descMain = syn($descMain);
$gCode = substr(md5(microtime(true)), 0, 3);
$getDomain = domain($paySite);
// ---- Start: Обработка Title ----
$titleMainShort = str_replace("&", "and", $titleMainShort); // Заменяем '&' на 'and'.
$titleMainShort = preg_replace("/[^A-Za-z0-9\s-!.,:;?']/", "", $titleMainShort ); // Удаляем лишнии символы из текста.
$fileName = strtolower( preg_replace( '/\s+/', '-', trim( preg_replace("/[^A-Za-z0-9\s]/", "", $titleMainShort ) ) ) ); // Удаляем символы кроме Пробела Лат. букв и цифр, заменяем пробелы на тире, переводим сё в нижний регистр.
$fileName = $fileName.'-'.$getDomain.'-'.$i.$gCode; // Создаем уникальность названия для предотвращения совпадений (имя файла по тайтлу+домен платника+номер строки обработки+случайный трехсимвольный код)
$titleMain = getStr($titleMain);
$titleTP = getLimitText($titleMain, 35);
$titleEmbed = getLimitText($titleMain, 70);
// ---- End: Обработка Title ----
// ---- Start: Обработка Desccription ----
$descMain = str_replace("&", "and", $descMain); // Заменяем '&' на 'and'.
$descMain = preg_replace("/[^A-Za-z0-9\s-!.,:;?']/", "", $descMain ); // Удаляем лишнии символы из текста.
$descMain = getStr($descMain);
$metaDesc = getLimitText($descMain, 120);
$embedDesc = getLimitText($descMain, 400);
// ---- End: Обработка Desccription ----
// ---- Start: Созание строки тегов ----
$tags = ""; // Объявляем переменную пустой.
for( $z = 0; $z<=3; $z++ ) // Запускаем цикл.
{
$rand_tags = random($tagsFile);
$rand_tags = trim($rand_tags); // Убираем возможные пробелы из начала и конца строк.
$tags .= $rand_tags.", "; // Разделяем наращиваемые слова запятыми.
}
$tags = substr($tags, 0, strlen($tags) - 2)."."; // Заменяем последнии два символа (запятая, пробел) на одну точку.
// ---- End: Созание строки тегов ----
// ---- Start: Получение случайноко киворда ----
$keyWord = random( $keysFile );
$keyWord = ucfirst($keyWord).".";
// ---- End: Получение случайноко киворда ----
// ---- Start: Получение случайноко тайтла для ссылки на платник ----
$linksTitle = random( $linksFile );
// ---- End: Получение случайноко тайтла для ссылки на платник ----
// ---- Start: Получение случайноко тайтла для продолжения "Watch FREE..." ----
$topTitle = random( $topTitleFile );
$topTitle = ucwords($topTitle);
// ---- End: Получение случайноко тайтла для продолжения "Watch FREE..." ----
// с помощью preg_replace() выполняем поиск и замену по РЕГУЛЯРНОМУ ВЫРАЖЕНИЮ в файле-шаблоне заданом в переменной $content
$content = str_replace('{flv}', $flv, $content);
$content = str_replace('{img}', $img, $content);
$content = str_replace('{titleTP}', $titleTP, $content);
$content = str_replace('{titleEmbed}', $titleEmbed, $content);
$content = str_replace('{keyWord}', $keyWord, $content);
$content = str_replace('{metaDesc}', $metaDesc, $content);
$content = str_replace('{embedDesc}', $embedDesc, $content);
$content = str_replace('{fileName}', $fileName, $content);
$content = str_replace('{width}', $width, $content);
$content = str_replace('{height}', $height, $content);
$content = str_replace('{cPaySite}', $cPaySite, $content);
$content = str_replace('{tags}', $tags, $content);
$content = str_replace('{linksTitle}', $linksTitle, $content);
$content = str_replace('{topTitle}', $topTitle, $content);
$content = str_replace('{paySite}', $paySite, $content);
$content = preg_replace("/[\r\n]/", "", $content );
// Открыть текстовый файл
$f = fopen($expData, "a");
// Записываем строку данных (каждая запись с новой строки)
fwrite($f, $content. "\r\n");
// Закрыть текстовый файл
fclose($f);
}
echo "Done!";
ПХП установлен версии 5.0.4