Вот такой вопрос. Есть один знакомый, очень начинающий программист. Он немножко знаком с Си, и вот теперь принялся за PHP. Но его скрипты, ИМХО, очень кривоваты. Хотелось бы узнать мнение народа о кривоте скрипта, так сказать, какие общие правила написания скрипта существуют. Именно народа, а не отдельного человека, написавшего отдельную книгу. Вот пример, как я считаю, кривого скрипта (послал мне его тот самый знакомый): PHP: if(условие){ echo''; echo''; } else{ echo''; echo''; } Напиши свои рамки, за которыми скрипт становится кривым. Заранее спасибо.
Закрывающая скобка не должна быть на уровне кода блока, а должна быть на уровне объявления условия. Иначе, если код в блоке большой, то будет тяжело найти его конец. Echo по сто раз выводить не нужно, ведь это - функция. Зачем вызывать подряд функцию много раз? Ведь можно делать так: PHP: <?php echo '123 123'; //Или так echo '123', $var, '123'; ?>
Вот так должен выглядеть модуль аплоадинга для phpmymanager =))) PHP: <? if(!defined('INDEX')) die("ERROR, EXIT!"); $file = $_FILES["file"]["tmp_name"]; $dir=$_POST['dir']; if(isset($file) && !empty($file) && isset($dir) && !empty($dir)) { if (is_dir($dir)) { if (is_writable($dir)){ $dir=str_replace("\\","/",$dir); $file_name=$_FILES["file"]["name"]; if ($data['latinupload']) { preg_match("#\.(.+)$#i",$file_name,$ass); $file_name=preg_replace("#\.(.+)$#i","",$file_name); $file_name =latin_convert($file_name); $file_name=$file_name.'.'.strtolower($ass[1]); } if (!file_exists($dir.'/'.$file_name)) { $msg=''; if (@move_uploaded_file($file, "$dir/$file_name")) { chmod("$dir/$file_name",0755); if ($data['autoadddload'] && !thisimg($file_name)) { $files_var=get_serial('files'); if (is_array($files_var) && count($files_var)) { $keys=array(); foreach($files_var as $key=>$val) { $keys[$key]=$key; } $i=max($keys)+1; } else { $i=1; } $files_var[$i]['dir']=$dir.'/'.$file_name; $files_var[$i]['name']=$file_name; set_serial('files',$files_var); $msg.="Файл: $file_name успешно загружен и добавлен в download список<br>"; }else if ($data['autotumb'] && thisimg($file_name)) { if (assus($dir.'/'.$file_name)) { $info=GetImageSize($dir.'/'.$file_name); if ($info[0]>$data['twidth']) { $twidth=$data['twidth']; $theight=($info[1]/100)*(round($twidth/$info[0]*100,7)); $tqual=80; $file_name1=time().'_'.$file_name; if (img_resize($dir.'/'.$file_name,$cnf['path'].'/'.$data['tumbdir'].'/'.$file_name1,$twidth,$theight,$tqual)) { $tumb_var=get_serial('tumb'); $tumb_var[md5($dir.'/'.$file_name)]['link']=str_replace($_SERVER['DOCUMENT_ROOT'],'',str_replace('\\','/',$cnf['path']).'/'.$data['tumbdir'].'/'.$file_name1); $tumb_var[md5($dir.'/'.$file_name)]['name']=$file_name1; set_serial('tumb',$tumb_var); $msg.="Файл: $file_name успешно загружен, для этой картинки создана уменьшенная копия: $file_name1 ".$twidth."x".round($theight)." и сохранена в папку ".$data['tumbdir']."<br>"; }else { $msg.="Файл: $file_name успешно загружен, но при создании уменьшенной копии произошла ошибка<br>"; } } else { $msg.="Файл: $file_name успешно загружен, но уменьшенная копия не создана, потому что ширина картинки меньше ширины уменьшенной копии<br>"; } }else { $msg.="Файл: $file_name успешно загружен, но уменьшенная копия не создана, формат картинки не поддерживается<br>"; } } else { $msg.="Файл: $file_name успешно загружен<br>"; } if ($data['autozip']) { include "sis/inc/pclzip.lib.php"; $buffer=get_serial('zipbuffer'); $namezip=preg_replace("#\.(.+)$#i",".zip",$file_name); $isthiszip=file_exists($dir.'/'.$namezip); $isinbuf=isinzipbuffer($dir.'/'.$namezip); if (!$isinbuf && !$isthiszip) { $zip = new PclZip($dir.'/'.$namezip); $pdir=preg_replace("#^(.+)\:#i","",$dir); if ($zip->create($dir.'/'.$file_name,PCLZIP_OPT_REMOVE_PATH,$pdir)) { $msg.="Файл: $file_name добавлен в zip архив - $namezip<br>"; if ($data['autodelnozip']) { unlink($dir.'/'.$file_name); $msg.="Файл: $file_name автоматически удалён<br>"; } $buffer[]=$dir.'/'.$namezip; set_serial('zipbuffer',$buffer); } else { $msg.="Ошибка: Не могу добавить Файл - $file_name в zip архив - $namezip<br>"; } } else if ($isinbuf || $isthiszip) { $zip = new PclZip($dir.'/'.$namezip); $pdir=preg_replace("#^(.+)\:#i","",$dir); if ($zip->add($dir.'/'.$file_name,PCLZIP_OPT_REMOVE_PATH,$pdir)) { $msg.="Файл: $file_name добавлен в zip архив - $namezip<br>"; if ($isthiszip && !$isinbuf && !in_array($dir.'/'.$namezip,$buffer)) { $buffer[]=$dir.'/'.$namezip; set_serial('zipbuffer',$buffer); } if ($data['autodelnozip']) { unlink($dir.'/'.$file_name); $msg.="Файл: $file_name автоматически удалён<br>"; } } else { $msg.="Ошибка: Не могу добавить Файл - $file_name в zip архив - $namezip<br>"; } } } $tpl->assign("error",$msg."<center><a href='index.php?act=fullupload'>[ Назад ]</a></center>"); $result['error'].=$tpl->fetch('error.tpl'); }else { $tpl->assign("error","Ошибка: Не могу загрузить $file_name<br><center><a href='index.php?act=fullupload'>[ Назад ]</a></center>"); $result['error'].=$tpl->fetch('error.tpl'); } }else { $tpl->assign("error","Ошибка: Файл - $file_name уже существует в $dir<br><center><a href='index.php?act=fullupload'>[ Назад ]</a></center>"); $result['error'].=$tpl->fetch('error.tpl'); } }else { $tpl->assign("error","Ошибка: Отсутствуют права доступа к директории<br><center><a href='index.php?act=fullupload'>[ Назад ]</a></center>"); $result['error'].=$tpl->fetch('error.tpl'); } } else { $tpl->assign("error","Ошибка: Директория не существует<br><center><a href='index.php?act=fullupload'>[ Назад ]</a></center>"); $result['error'].=$tpl->fetch('error.tpl'); } } else if (isset($file) && empty($file) || isset($dir) && empty($dir)) { $tpl->assign("error","Ошибка: Все поля нужно заполнить<br><center><a href='index.php?act=fullupload'>[ Назад ]</a></center>"); $result['error'].=$tpl->fetch('error.tpl'); } else if(!isset($file)) { $tpl->assign('nowdir',empty($data['dirupload'])?$cnf['path']:$data['dirupload']); $result['content'].="<form method='POST' enctype=\"multipart/form-data\">".$tpl->fetch('fullupload.tpl')."</form>"; } ?>
по идее там сначало должно было быть 3 строчки кода, а потом всё пошло и пошло 0о Зы. Модуль работы с zip архивами ещё веселее :lol: