Ищу автоматическое удаление битых ссылок в HTML - Форум успешных вебмастеров - GoFuckBiz.com
 
 
Форум успешных вебмастеров - GoFuckBiz.com

  Форум успешных вебмастеров - GoFuckBiz.com > Бизнес-решения > Скрипты, программы и технические решения
Дата
USD/RUB90.1887
BTC/USD68066.1754
Скрипты, программы и технические решения Обсуждаем скрипты, программы и новые технологии.

Закрытая тема
Опции темы Опции просмотра
Старый 07.06.2019, 01:51   #1
Morgul
Senior Member
 
Аватар для Morgul
 
Регистрация: 03.10.2010
Сообщений: 1,712
Бабло: $296955
Question Ищу автоматическое удаление битых ссылок в HTML

Ищу софт, который сможет прочекать статику на 404 ссылки в коде (ссылки на несуществующие внутряки сайта) и удалить их, оставив текст (анкоры). Если то же самое еще с картинками - прям вообще супер.

Может кто-то видел такое в природе?
Погуглил - ничего не нашел. Максимум под WP плагин, который вроде как находит такие ссылки и предлагает с ними что-то сделать (удалить, редактировать и еще че-то, я не вникал особо).

Или без кодинга тут никак не обойтись? По идее, задачка типовая для нас и я надеялся сходу че-нить найти...
Morgul вне форума  
Старый 07.06.2019, 04:41   #2
Creolabs
Tomorrow
 
Аватар для Creolabs
 
Регистрация: 22.01.2013
Адрес: Баден-Баден
Сообщений: 1,451
Бабло: $236030
По умолчанию

Проверить сайт Site Analyzer'ом на 404 ошибки, выкачать сайт на винт и править ссылки прогой Text Replacer'ом на нужные тебе ссылки или просто без ссылок.


http://tr.infortech.ru/
__________________

Creolabs вне форума  
Старый 07.06.2019, 11:09   #3
Morgul
Senior Member
 
Аватар для Morgul
 
Регистрация: 03.10.2010
Сообщений: 1,712
Бабло: $296955
ТС -->
автор темы ТС По умолчанию

Цитата:
Сообщение от Creolabs Посмотреть сообщение
Проверить сайт Site Analyzer'ом на 404 ошибки, выкачать сайт на винт и править ссылки прогой Text Replacer'ом на нужные тебе ссылки или просто без ссылок.


http://tr.infortech.ru/
это надо поштучно каждую ссылку в этой проге задать для удаления? а если таких ссылок 50-100? Такое нужно автоматизировать, а не руками сидеть 2 часа удалять.
Morgul вне форума  
Старый 07.06.2019, 11:19   #4
Sultan
Шучу на половину
 
Аватар для Sultan
 
Регистрация: 23.01.2011
Сообщений: 5,834
Бабло: $1167860
По умолчанию

только полуручным способом по этапно задачам, готового не попадалось

как альтернатива, еще можно
screamingfrog, обходит указанный сайт репортит по битым ссылкам
notepadd++ замена в файлах
Sultan вне форума  
Старый 07.06.2019, 11:26   #5
Morgul
Senior Member
 
Аватар для Morgul
 
Регистрация: 03.10.2010
Сообщений: 1,712
Бабло: $296955
ТС -->
автор темы ТС По умолчанию

Цитата:
Сообщение от Creolabs Посмотреть сообщение
Проверить сайт Site Analyzer'ом на 404 ошибки, выкачать сайт на винт и править ссылки прогой Text Replacer'ом на нужные тебе ссылки или просто без ссылок.


http://tr.infortech.ru/
это надо поштучно каждую ссылку в этой проге задать для удаления? а если таких ссылок 50-100? Такое нужно автоматизировать, а не руками сидеть 2 часа удалять.
Morgul вне форума  
Старый 07.06.2019, 11:34   #6
Sultan
Шучу на половину
 
Аватар для Sultan
 
Регистрация: 23.01.2011
Сообщений: 5,834
Бабло: $1167860
По умолчанию

только полуручным способом по этапно задачам, готового не попадалось

как альтернатива, еще можно
гуглить готовое
заказать кодерам
заказать неграм
Sultan вне форума  
Старый 07.06.2019, 12:35   #7
OfeatO
Member
 
Регистрация: 05.03.2008
Сообщений: 70
Бабло: $16285
По умолчанию

PHP код:
<?php
// ПЕРЕД ВЫПОЛНЕНИЕМ - !!!!!BACKUP
//сработает если url на сайте абсолютные или полные (/imgs/1.jpg или http://site.com/imgs/1.jpg)

$folder="/var/www/html/site_folder";  //абсолютный путь к папке с сайтом без слэша на конце. Если винда d:\\sites\\site

$site=array('http://site.com','http://www.site.com','https://site.com','http://www.site.com');  //возможные url сайта без слэша на конце
$index=array('index.html','index.htm','index.php'); // возможные индексы
$iCnt=sizeof($index);
$allPath=array();
$nPath=array();

$it = new RecursiveDirectoryIterator($folder);
$display = Array ( 'html''htm' );
foreach(new 
RecursiveIteratorIterator($it) as $file)
{
    
$ext pathinfo($filePATHINFO_EXTENSION);
    
$fName pathinfo($filePATHINFO_FILENAME).'.'.$ext;
    
    
$fPath=str_replace($folder,'',$file);
    
$plen=strlen($fPath);
    if(
$fPath[($plen-1)]=='.') continue;
    
$nixPath=str_replace('\\','/',$fPath);
    
    
    
    
$allPath[]=$nixPath;
    if(
$nixPath[($plen-1)]=='/') {
        
$a=0;
        while(
$a<$iCnt) {
            
$allPath[]=$nixPath.$index[$a];
            
$a++;
        }
    }

    if(
in_array($fName,$index)) {
        
$allPath[]=str_replace($fName,'',$nixPath);
    }
    
    if(
in_array($ext,$display)) {
        
$nPath[]=$file;
    }
}

//print_r($allPath);
while(list(,$val)=each($nPath)) {
    echo 
$val."\n";
    
$isChng=false;
    
$data=file_get_contents($val);
    
$preg=preg_match_all("/<a[^>]+href\s*=\s*[\"']?([^\s>\"']+)[^>]*>(.*?)<\/a[^>]*>/is",$data,$out);
    if(!empty(
$preg)) {
        
$a=0;
        
$count=sizeof($out[1]);
        while(
$a<$count) {
            
$out[1][$a]=str_replace($site,'',$out[1][$a]);
            if(
$out[1][$a][0]=='/') {
                if(!
in_array($out[1][$a],$allPath)) {
                    echo 
$out[1][$a]."\n";
                    
$data=str_replace($out[0][$a],$out[2][$a],$data);
                    
$isChng=true;
                }
            }
            
$a++;
        }
    }
    
$preg=preg_match_all("/<img[^>]+src\s*=\s*['\"]?([^\s>\"']+[^>]*>/is",$data,$out);
    if(!empty(
$preg)) {
        
$a=0;
        
$count=sizeof($out[1]);
        while(
$a<$count) {
            
$out[1][$a]=str_replace($site,'',$out[1][$a]);
            if(
$out[1][$a][0]=='/') {
                if(!
in_array($out[1][$a],$allPath)) {
                    echo 
$out[1][$a]."\n";
                    
$data=str_replace($out[0][$a],'',$data);
                    
$isChng=true;
                }
            }
            
$a++;
        }
    }
    if(
$isChng) {
        
$fp=fopen($val,'wb');
        
fwrite($fp,$data);
        
fclose($fp);
    }
}


?>
OfeatO вне форума  
Старый 07.06.2019, 14:37   #8
Morgul
Senior Member
 
Аватар для Morgul
 
Регистрация: 03.10.2010
Сообщений: 1,712
Бабло: $296955
ТС -->
автор темы ТС По умолчанию

OfeatO, удалит битые ссылки? спасибо за код.

зы. модерам - база форума глючила и получилось дважды запостить одно и то же. 5й пост тут можно удалить.
Morgul вне форума  
Старый 07.06.2019, 15:11   #9
OfeatO
Member
 
Регистрация: 05.03.2008
Сообщений: 70
Бабло: $16285
По умолчанию

Удалит ссылки (внутряки) и картинки. Но только если они прописаны абсолютными путями или с url сайта.
OfeatO вне форума  
Старый 07.06.2019, 15:50   #10
веломан
сыроед
 
Аватар для веломан
 
Регистрация: 01.10.2015
Сообщений: 15,874
Бабло: $1862575
По умолчанию

шо это
Цитата:
while(list(,$val)=each($nPath))
list() так не сработает
веломан вне форума