Jump to content

andyarus

User
  • Posts

    63
  • Joined

  • Last visited

andyarus's Achievements

Explorer

Explorer (1/14)

-12

Reputation

  1. юзай рефакторинг, автоматом все заменишь и усе. как у тебя сделано, я бы точно делать не стал. пс. проспонсируешь, я настрою все, чтобы работало пспс. по теме хз, не сталкивался с таким.
  2. а post-запросом в данном случае можно отправить?
  3. ага win7 2мбит/с вручную ставил апач в одном месте подсказали, что причиной может быть частое curl_init curl_close.
  4. у меня почти так и сделано. только в цикле удаляются папки, а файлы сразу сносятся (CURLOPT_QUOTE, array('file1','file2','fileN'); ). скрипт делает то, что я хочу. но медленно! в 4 раза медленнее FileZilla! вопрос - какие у меня недочеты в коде? как ускорить?
  5. не все так просто оказалось, как хотелось бы. RMD удаляет только пустые папки. накатал велосипед, но он катится(удаляет файлы) в 4 раза медленнее FileZilla. хелп оптимизировать быдлокод? ?<?php set_time_limit(0); ob_implicit_flush(1); ob_end_flush(); $mtbegin = microtime(1); $useragents = str_replace("\r\n", '', file('useragents.txt')); //формат //ftp://login1:password@ftp.host.ru //ftp://login2:password@ftp.host.ru //ftp://login3:password@ftp.host.ru $count = file('loginsftp.txt'); for($i=0;$i<count($count);$i++){ $useragent = $useragents[mt_rand(0, count($useragents)-1)]; $logins = str_replace("\r\n", '', file('loginsftp.txt')); $url = array_shift($logins); file_put_contents('loginsftp.txt', implode("\r\n", $logins)); $result = CURL_FTP($url, 0, 0); $content = $result['content']; $arr = explode("\r\n", $content); $ftp = ''; foreach($arr as $v) $v !== '' ? $ftp[] = $v : ''; if($ftp == ''){ echo $i+1 .' '.$url.' <b style="color:green;">пусто!</b><br />'; continue; } else { $files = ''; $dirs = ''; foreach($ftp as $v) preg_match("#\.#", $v) ? $files[] = 'DELE '.$v : $dirs[] = $v; if($files !== '') $result = CURL_FTP($url, $files, 0, 1); if($result['errno'] == 21) $files = ''; $dirs = ''; foreach($ftp as $v) !is_dir($url.'/'.$v) ? $files[] = 'DELE '.$v : $dirs[] = $v; if($dirs !== ''){ for($a=0;$a<count($dirs);$a++){ $urldir = $url.'/'.$dirs[$a].'/'; $result = remove_ftp($urldir); if($result == true) continue; } } } $result = CURL_FTP($url, 0, 0); if(strlen($result['content']) == 0){ echo $i+1 .' '.$url.' <b style="color:maroon;">файлы удалены!</b><br />'; } else { echo $i+1 .' '.$url.' <b style="color:red;">huinya какая-то! (<i>не все файлы удалились. возможно проблема с CURLOPT_TRANSFERTEXT или правами на файлы</i>)</b><br />'; } continue; } if((round((round(microtime(1)-$mtbegin, 2))/60)) > 1){ echo '<br />Всего времени затрачено: '; echo '~'.round((round(microtime(1)-$mtbegin, 2))/60) .' мин<br /><br />'; } else { echo '<br />Всего времени затрачено: '; echo '~'.round(microtime(1)-$mtbegin, 2) .' сек<br /><br />'; } function remove_ftp($url){ $result = CURL_FTP($url, 0, 0); $content = $result['content']; $arr = explode("\r\n", $content); $ftp = ''; foreach($arr as $v) $v !== '' ? $ftp[] = $v : ''; $dir = preg_replace("#ftp://.+/#U", "", $url); $urldir = preg_replace("#/[^@:/]+/$#U", "/", $url); if($ftp == ''){ $dir = array("RMD $dir"); CURL_FTP($urldir, $dir, 0, 1); return true; } $files = ''; $dirs = ''; foreach($ftp as $v) preg_match("#\.#", $v) ? $files[] = 'DELE '.$dir.$v : $dirs[] = $v; if($files !== '') $result = CURL_FTP($urldir, $files, 0, 1); if($result['errno'] == 21) $files = ''; $dirs = ''; foreach($ftp as $v) !is_dir($url.'/'.$v) ? $files[] = 'DELE '.$v : $dirs[] = $v; if($dirs !== ''){ for($b=0;$b<count($dirs);$b++){ $urldir = $url.$dirs[$b].'/'; $result = remove_ftp($urldir); if($result == true) continue; } } remove_ftp($url); } function CURL_FTP($url, $deletearray, $upload=0, $delete=0){ global $useragent, $infile, $filetoupload; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_FTPLISTONLY, 1); //curl_setopt($ch, CURLOPT_TRANSFERTEXT, 1); // если нет бинарных файлов (картинки, фавиконы и тп), вроде как работает быстрее if($upload == 1){ curl_setopt($ch, CURLOPT_UPLOAD, 1); curl_setopt($ch, CURLOPT_INFILE, $infile); curl_setopt($ch, CURLOPT_INFILESIZE, filesize($filetoupload)); } $delete == 1 ? curl_setopt($ch, CURLOPT_QUOTE, $deletearray) : ''; curl_setopt($ch, CURLOPT_VERBOSE, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_USERAGENT, $useragent); $content['content'] = curl_exec($ch); $content['errno'] = curl_errno($ch); //if(curl_errno($ch) !== 21){ // echo 'Curl errornumber: ' . curl_errno($ch) . '<br />'; // echo 'Curl error: ' . curl_error($ch); //} curl_close($ch); return $content; } ?>
  6. как все просто оказывается) благодарю!
  7. я пробовал эти функции. но были тормоза, срабатывало через раз. кароч так и не догнал в чем дело, заюзал курл. работает моментально. есть команда типа DELE, но чтобы удаляла папки?
  8. $content = CURL_FTP($url, 0, 0); $arr = explode("\r\n", $content); foreach($arr as $v) $v !== '' ? $ftpfiles[] = $v : ''; foreach($ftpfiles as $v) $deletearray[] = 'DELE '.$v; CURL_FTP($url, 0, 1); function CURL_FTP($url, $upload=0, $delete=0){ global $useragent, $infile, $filetoupload, $deletearray; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_FTPLISTONLY, 1); if($upload == 1){ curl_setopt($ch, CURLOPT_UPLOAD, 1); curl_setopt($ch, CURLOPT_INFILE, $infile); curl_setopt($ch, CURLOPT_INFILESIZE, filesize($filetoupload)); } $delete == 1 ? curl_setopt($ch, CURLOPT_QUOTE, $deletearray) : ''; curl_setopt($ch, CURLOPT_VERBOSE, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_USERAGENT, $useragent); $content = curl_exec($ch); if(curl_errno($ch)){ echo 'Curl error: ' . curl_error($ch); } curl_close($ch); return $content; } цель - удалить все. достигается, если нет папок. если есть, вылазит ошибка. пробовал отделять папки, но не работает на ftp! foreach($ftpfiles as $v) !is_dir($v) ? $deletearray[] = 'DELE '.$v : ''; 1 вопрос - как на фтп отделить папки и файлы 2 вопрос - с помощью какой команды удаляются папки. файлы удаляются (DELE имя файла) 3 если нет команды для папок, как удалить все с ftp?
  9. я хочу аналог на javascript <?php if($configcheckedcheckbox == ' checked') { echo <<<EOD <script language="javascript"> show('logins'); show('spisok'); </script> EOD; } ?> блин, как все просто оказывается. надо было так var a = document.selecttelephone.logins[1].checked; if(a) { show('logins'); show('hlogins'); // == show('spisok'); } благодарю за помощь!
  10. я в javascript не бум-бум) document.selecttelephone.logins[1]; - нашел этот код. как я понял нумерация кнопок идет сверху вниз, начиная с [0] так не работает почему-то var a = document.selecttelephone.logins[1]; if (a.cheked) { show('logins'); show('spisok'); } как сделать, чтобы заработало или как вставить на страницу <script language="javascript"> show('logins'); show('spisok'); </script> с помощью javascript? а да, это должно срабатывать при загрузке страницы. т.е. не когда нажимаю на document.selecttelephone.logins[1] а именно когда страница только открывается т.е. с помощью javascript нельзя получить состояние "неактивного" (хз как правильно) элемента?
  11. ага, спасибо! я прост не видел твоего сообщения, когда отправлял последний пост. var a = document.selecttelephone.logins[1]; if (a.cheked) { innerHTMl = '<script language="javascript"> show('logins'); show('spisok'); </script>'; } как правильно вставить на страницу? есть в javascript аналог heredoc или howdoc ?
  12. Сделал все как хотел <form action="config.php" method="POST" name="selecttelephone"> <input type="radio" name="logins" value="all"<?php echo $configcheckedall; ?> onclick="hide('logins');hide('spisok')"><span style="cursor:pointer;" onclick="hide('logins');hide('spisok');document.selecttelephone.logins[0].checked=true">ВСЕ</span><br /> <input type="radio" name="logins" value="checkbox"<?php echo $configcheckedcheckbox; ?> onclick="show('logins');show('spisok')"><span style="cursor:pointer;" onclick="show('logins');show('spisok');document.selecttelephone.logins[1].checked=true">Выборочно</span> <span id="spisok" style="cursor:pointer;display:none;" onclick="showhide('logins')" id="hlogins">Скрыть список</span> </form> <script language="javascript"> function show(eid) { var gel = document.getElementById(eid); gel.style.display = ''; } function hide(eid) { var gel = document.getElementById(eid); gel.style.display = 'none'; } function showhide(eid) { var gel = document.getElementById(eid); var isvis = gel.style.display ? 1 : 0; gel.style.display = isvis ? '' : 'none'; var th = document.getElementById('h'+eid); if(th) { var rl = ['Скрыть список', 'Показать список']; th.innerHTML = th.innerHTML.replace(rl[isvis], rl[1-isvis]); } } </script> <?php if($configcheckedcheckbox == ' checked') { echo <<<EOD <script language="javascript"> show('logins'); show('spisok'); </script> EOD; } ?> Можно как-то проще было сделать?) Можно заменить пхп код на javascript? т.е. при selecttelephone.logins[1] == checked на страницу добавлялся javascript <script language="javascript"> show('logins'); show('spisok'); </script> Вопрос остается открытым: как получить checked или нет <input type="radio" name="logins"> ?!
  13. Как получить checked или нет <input type="radio" name="logins"> ?! Ща так <form name="selecttelephone"> <input type="radio" name="logins" value="all"><span style="cursor:pointer;" onclick="hide('logins');document.selecttelephone.logins[0].checked=true">ВСЕ</span><br /> <input type="radio" name="logins" value="checkbox"><span style="cursor:pointer;" onclick="show('logins');document.selecttelephone.logins[1].checked=true">Выборочно</span> </form> <script language="javascript"> function show(eid) { var gel = document.getElementById(eid); gel.style.display = ''; } function hide(eid) { var gel = document.getElementById(eid); gel.style.display = 'none'; } </script> <div id="logins" style="display:none;"></div> Надо, чтобы было тоже самое, когда выбираешь radio. Если selecttelephone.logins[0] == checked, то hide('logins'); Если selecttelephone.logins[1] == checked, то show('logins'); Как это на javascript делается? ы, если добавить <input type="radio" name="logins" value="all" onclick="show('logins')">, то все работает как нужно. пробовал так, но код show/hide нерабочий был, а ща забыл затестить. но вопрос как получить checked или нет <input type="radio" name="logins"> ?! остается открытым. надо, чтобы при selecttelephone.logins[1] == checked появлялся <span style="cursor:pointer;" onclick="showhide('logins')" id="hlogins">Скрыть список</span> function showhide(eid) { var gel = document.getElementById(eid); var isvis = gel.style.display ? 1 : 0; gel.style.display = isvis ? '' : 'none'; var th = document.getElementById('h'+eid); if(th) { var rl = ['Скрыть список', 'Показать список']; th.innerHTML = th.innerHTML.replace(rl[isvis], rl[1-isvis]); } }
  14. http://jsfiddle.net/nmpAd/ http://jsfiddle.net/m97Qg/3/ http://jsfiddle.net/f9YuV/
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy