Я пытаюсь извлечь статьи из каталога наугад, а затем вращать и отображать. Это для статей Spintax Пример:
{Кошка | Собака | Обезьяна | Рыба | Ящерица} {пошел к озеру | съел мышь | прыгнул в воду}
В каталоге будет несколько текстовых файлов. Я уверен, что почти у меня это есть!
<?php
function spin($s){
preg_match('#\{(.+?)\}#is', $s, $m);
if (empty($m))
return $s;
$t = $m[1];
if (strpos($t, '{') !== false)
{
$t = substr($t, strrpos($t,'{') + 1);
}
$parts = explode("|", $t);
$s = preg_replace("+\{".preg_quote($t)."\}+is",
$parts[array_rand($parts)], $s, 1);
return spin($s);
}
$articles = glob("test/*.txt");
$file = array_rand($articles);
$string = file_get_contents($articles[$file]);
$f = file_get_contents($string, "r");
while ($line = fgets($f, 1000)) {
echo spin($line);
}
?>
Я исправил это через 20 минут после. Я разместил неработающий скрипт выше.
$ f = file_get_contents ($ string, «r»); Строка $ не принадлежала, я немного устал.
<?php
function spin($s){
preg_match('#\{(.+?)\}#is',$s,$m);
if(empty($m)) return $s;
$t = $m[1];
if(strpos($t,'{')!==false){
$t = substr($t, strrpos($t,'{') + 1);
}
$parts = explode("|", $t);
$s = preg_replace("+\{".preg_quote($t)."\}+is",
$parts[array_rand($parts)], $s, 1);
return spin($s);
}
$articles = glob("test/*.txt");
$files = array_rand($articles);
$f = fopen($articles[$files], "r");
while ( $line = fgets($f, 1000) ) {
echo spin($line);
}
?>
Других решений пока нет …