в общем есть папка с html страницами, и есть файл с анкорами для ссылок,
<?php
//считываем в массив все строки, которые вставлять вместо анкора
/*
в текстовом файле стоки
slo online
buy slon
dog in home
bla cat is mayu
blabla cat
dog bla bla
.....
(типо)
есть анкоры и про собак и про кошек и про слонов
*/
$new_lines = array();
$tmp = file('new_anchors.txt');
foreach ($tmp as $v)
{
$v = trim($v);
if (empty($v)) {continue;}
$new_lines[] = $v;
}
//получаем список html файлов из папки
$files = glob('zamena/*.html');
foreach ($files as $file)
{
$x = file_get_contents($file);
//парсим все ссылки
preg_match_all('!(<a href="http://site.com/[^"]+">)(.*?)</a>!is',$x,$res1,PREG_SET_ORDER);
foreach ($res1 as $xx)
{
//определяем есть ли в ссылки хорошие строки
$good_link = false;
preg_match_all('!(slon|dog|cat)!is',$file,$drugs,PREG_SET_ORDER);
foreach($drugs as $drug){
//echo $drug[0];
}
foreach ($drug as $line)
{
if (stripos($xx[2],$line)!==false)
{
$good_link = true;
break;
}
}
//если нет строк, то пропускаем
if (!$good_link) {
continue;
}
foreach ($new_lines as $keys => $value) // выбирает только те строки в которых есть слово slon!
{
if (preg_match("/slon/is", $value)){ // КАК ВОТ ТУТ СОЗДАТЬ УСЛОВИЕ?? если ссылка выглядит так http://site.com/slony-iz-afriki/ (в ссылке есть слово слон) то подбирать анкор по условию из строчки выше!!!
$masiv [$keys] = $value;
}
}
$rand_str = $masiv[array_rand($masiv)];
//заменяем старую ссылку $xx[0] на ссылку со случайным анкором
//print_r($xx[0]);
$x = str_replace($xx[0],$xx[1].$rand_str.'</a>',$x);
}
file_put_contents($file,$x);
}
?>