массово вставить кейворды из txt файла под виндой

12
DV
На сайте с 01.05.2010
Offline
644
#11

Теперь будем учиться запускать PHP :)

VDS хостинг ( http://clck.ru/0u97l ) Нет нерешаемых задач ( https://searchengines.guru/ru/forum/806725 ) | Перенос сайтов на Drupal 7 с любых CMS. ( https://searchengines.guru/ru/forum/531842/page6#comment_10504844 )
J
На сайте с 06.07.2011
Offline
169
#12
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 файла.

siv1987
На сайте с 02.04.2009
Offline
427
#13
jano:
к примеру в html файле сотня key1 и везде только один кейворд вставляется один и тот же, не по рэндому.

$html = str_replace($key, $random, $html);

заменить на

$html = substr_replace($html, $random, $p, strlen($key));

J
На сайте с 06.07.2011
Offline
169
#14
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
На сайте с 02.04.2009
Offline
427
#15

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

J
На сайте с 06.07.2011
Offline
169
#16
siv1987:
В подпапках файлы не ищет.

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

siv1987
На сайте с 02.04.2009
Offline
427
#17

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

J
На сайте с 06.07.2011
Offline
169
#18
siv1987:
Да, переписать код под функцию например, чтобы рекурсивно обходила всю директорию.

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

siv1987
На сайте с 02.04.2009
Offline
427
#19

Держи бро


$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";
}
J
На сайте с 06.07.2011
Offline
169
#20
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";
}

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

12

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