jano

Рейтинг
169
Регистрация
06.07.2011
Dinozavr:
из пхп вам понадобятся функции file и rand. для связи с БД подойдёт PDO. ну а в MySQL хватит UPDATE

ещё вопросы?

Спасибо. Имелось ввиду, может сможет кто-нибудь набросать скрипт.

siv1987:
Держи бро


$path = '.';
$keys = file('keyword.txt');

$dir = new RecursiveDirectoryIterator($path);
foreach(new RecursiveIteratorIterator($dir) as $val){
if(! $val->isFile()){
continue;
}

$file = $val->getPathname();
$name = $val->getFilename();
$ext = explode('.', $name);
$ext = end($ext);
$allow = array('htm', 'html');

if(! in_array(strtolower($ext), $allow)){
continue;
}

$html = file_get_contents($file);
$key = 'key1';

while(($p = strpos($html, $key)) !== false){
$random = trim($keys[array_rand($keys)]);
$html = substr_replace($html, $random, $p, strlen($key));
}

file_put_contents($file, $html);
echo "{$file}<br>\n";
}

Огромное тебе спасибо!! 🚬

siv1987:
Да, переписать код под функцию например, чтобы рекурсивно обходила всю директорию.

Бро, если это не долго, был бы признателен, если подправишь код.

siv1987:
В подпапках файлы не ищет.

Да, но как подправить код что бы искало и в подпапках тоже?

siv1987:
$html = str_replace($key, $random, $html);
заменить на
$html = substr_replace($html, $random, $p, strlen($key));

Большое спасибо, но вот дальше по папкам почему-то не вставляет кейворды.

Только в корневом каталоге.

Подскажи ещё пожалуйста, как сделать так что бы и по каталогам дальше шла замена:

papka1/html/news.html

.../

papka_new2/html/new.html

и т д

siv1987:
на php


$keys = file('keyword.txt');
$dir = '.';
$files = scandir($dir);

foreach($files as $f){
if(in_array($f, array('.', '..'))){
continue;
}
if(strpos($f, '.htm') === false){
continue;
}

$fil = $dir.'/'.$f;
$html = file_get_contents($fil);
$key = 'key1';

while(($p = strpos($html, $key)) !== false){
$random = trim($keys[array_rand($keys)]);
$html = str_replace($key, $random, $html);
}

file_put_contents($fil, $html);
}

Спасибо, запустил, подставка идёт key1. Но не правильно, к примеру в html файле сотня key1 и везде только один кейворд вставляется один и тот же, не по рэндому.. Помоги пожалуйста сделать так, что бы вставлялись разные кейворды из файла, а не один для одного html файла.

Мужики, никто не знает разве?

nikonlay:
на php тоже можно сделать.

только пока все равно не совсем понятно - у вас 1000 htm файлов таких:
<meta name="keywords" content="key1" />
<meta name="description" content=key1" />

или таких:
<meta name="keywords" content="key1, key1, key1, key1, key1" />
<meta name="description" content=key1" />
?

:)

key1 может быть в любом виде, хоть так:

I love you: key1, key1, key1 или

Нужна обычная функция поиска и замены слов (к примеру как в программе Text Replacer)

Только слово которое нужно найти "key1", а заменить на случайное слово из файлиак keyword.txt

Т.е. поиск и замена не на одно слово из списка keyword.txt в сдучайном порядке.

Sortafreel:
Пример приведите. А то согласно вашей схеме должно получиться:

<meta name="keywords" content="слон, слон, слон, слон" />
<meta name="description" content=слон" />

Не вижу практической ценности.

Если же key1 - это какое-то случайное ключевое слово из списка, представленного в файле - уже проще. Тогда можно сделать из файла список, написать простой скрипт на JS, который будет из этого списка случайно дергать ключевики и заменять в тексте страницы, а затем открыть эту страницу, и "сохранить как", так как обычный JS (простой, не node), не может делать правки в файлах напрямую.

Но тогда description будет состоять из несвязных слов, что тоже совершенно неинтересно :)

---------- Добавлено 14.05.2014 в 09:15 ----------



За POSIX - спасибо :) Не знал.

Более понятней :)

Есть тысячи .html файлов, в которых есть код "key1"

Так же есть файл keyword.txt в котором тысячи кейвордов, каждый кейворд идёт с новой строки.

Пример:

super puper

mega drive

serach rampage

и т д

Цель: Подставить вместо key1 в тысячах .html файлов случайным образом кейворды из файла keyword.txt

Получится как-то так:

<meta name="keywords" content="super puper, mega drive, serach rampage, mega drive" />

<meta name="description" content=serach rampage" />

DenisVS:
"очень простая задача" — это рандомизация одного исходника и парсинг другого.
Нет, такое пишется только на заказ.

Ну и более понятными словами, поиск и змена key1 случайными словами из списка keyword.txt

Я думаю здесь есть люди, кто сможет набросать пару строк бессплатно )

Всего: 424