Доброго дня!! Решил написать скрипт, помогающий юзерам не знающим HTML формировать простенькие таблицы собственного дизайна. Суть скрипта в следующем: Юзер загружает Exel файл, сохраненный в формате CSV на сервак в папку =download=, где скрипт определяет сколько колонок будет у данной таблицы. Дальше юзер выбирает дизайн и кликает на просмотр. В итоге если его все утроило получает код HTML. На данном этапе разработки скрипта не могу добиться чтобы скрипту передавался параметр имени загруженного файла строка 300 кода Вот код скрипта: | Код | <?php error_reporting (E_ALL ^ E_NOTICE);
$bordercolor = $_POST['bordercolor']; $sizefont = $_POST['sizefont']; $even = $_POST['even']; $odd = $_POST['odd']; $wide = $_POST['wide']; $font = $_POST['font']; $width = $_POST['width']; $colorfont = $_POST['colorfont']; $filename = $_POST['filename']; $download = $_POST['download'];
?>
<html>
<head> <title>EXEL->HTML, конвертация таблиц </title> <META HTTP-EQUIV="Content-type" CONTENT="text/html;charset=WINDOWS-1251"> <META HTTP-EQUIV="Pragma" CONTENT="no-cache"> </head> <STYLE type=text/css> body{margin-top:0px; margin-left:0px; margin-right:0px; margin-bottom:0px; cursor:default; } td{font-size:7pt; text-align:left; font-family:Verdana,Tahoma,Arial;} color:#31639c; td.info{font-size:8pt; text-align:left; font-family:Verdana,Arial;} td.r{font-size:8pt; text-align:right; font-family:Verdana,Arial;} td.rsm{font-size:7pt; text-align:right; font-family:Verdana,Arial;} td.c{font-size:7pt; text-align:center; font-family:Verdana,Arial;} td.lsm{font-size:7pt; font-family:Verdana;} td.cinfo{font-size:8pt; text-align:center; font-family:Verdana,Arial;} } .txtinp { BACKGROUND-COLOR: #ffffff; BORDER-BOTTOM: #31639c 1px solid; BORDER-LEFT: #31639c 1px solid; BORDER-RIGHT: #31639c 1px solid; BORDER-TOP: #31639c 1px solid; COLOR: #382850; FONT-SIZE: 9pt; color:#292c39; } .buttinp { BACKGROUND-COLOR: #d4d0c8; BORDER-BOTTOM: #31639c 1px ridge; BORDER-LEFT: #31639c 1px ridge; BORDER-RIGHT: #31639c 1px ridge; BORDER-TOP: #31639c 1px ridge; COLOR: #000000; FONT-SIZE: 9pt; cursor:hand; } a:link{text-decoration:none; color:#4273a5;} A:hover{TEXT-DECORATION: none; color:#ee0000;} a:visited{text-decoration:none;} </style>
<body bgcolor=#eeeeee text="004992" link="#4273a5" vlink="#4273a5" alink="#ee0000"><center> <table border=0 cellspacing=0 cellpadding=0 width="800" > <tr><td bgcolor=silver><font face=Verdana color=#949494> <a href=?>Помощь в работе</a></font></td><td bgcolor=silver class="r" height=30>
<span style="font-size:14px; color:41557a;"><b>Exel -> HTML конвертер</b></span>
</td></tr>
<tr><td colspan=2 class="c" bgcolor=dadada height=18>
<span style="font-size:10px; color:de6318;">Данный скрипт конвертирует Exel - таблицы, сохраненные в формате .csv в код HTML</span>
</td></tr>
<tr><td colspan=2>
<table border=0 cellspacing=0 cellpadding=0 width="800" > <tr> <td width=200 class="c" bgcolor=c0c0c0 height=26><form method="post" enctype="multipart/form-data"><input type="file" name="filename" class="txtinp"></td> <td width=180 class="c" bgcolor=c0c0c0 height=26><input type="submit" name="download" value="Загрузить .csv файл" class="buttinp"></td> <td class="c" bgcolor=#c0c0c0 height=18> <?php
if(copy($_FILES["filename"]["tmp_name"],"download/".$_FILES["filename"]["name"])) {
echo "Файл <font color=darkgreen>",$_FILES["filename"]["name"],"</font> успешно загружен. "; $file = "download/".$_FILES["filename"]["name"]; $open_csv = fopen("$file", "r"); $colspan = fgets($open_csv); fclose($open_csv);
$results_col = count_chars($colspan,0); for($i=0;$i < count($results_col);$i++){ if ($results_col[$i] != 0 && (chr($i) === ";")) { $cols = $results_col[$i] + 1; echo "Количество столбцов в таблице - $cols"; } } }
?>
</td> </tr> </table>
</td> </tr> <tr bgcolor=#dadada><td colspan=2><center><font color=#999999> По умолчанию программа сформирует таблицу с рамкой черного цвета и белыми полями, ширина таблицы будет равняться 100% от ширины экрана Вашего монитора. Цвет текста будет черным.</font> </center> </td></tr>
<tr><td height=24 bgcolor=silver><font color=black> Для создания таблицы выберите:</b></font></td><td bgcolor=silver class="rsm"><font color=black>Цвета и их значения <font color=#666666>(выделив мышкой, скопируйте в поле ввода)</font></font> </td></tr> <form method=post actions="exel.php"> </table><center>
<center> <table border=0 cellspacing=0 cellpadding=0 width="800" > <tr><td bgcolor=silver><center>
<table border=0 cellspacing=0 cellpadding=0 width="360" > <tr><td>
<table border=0 cellspacing=1 cellpadding=0 width="396" > <tr height=24> <td width="200" bgcolor=#dddddd class="c"> цвет текста в таблице # <input type=text size=6 name="colorfont" value="<?echo $_POST['colorfont']?>" maxlength=6 class="txtinp"></td> <td width="200" bgcolor=#dddddd class="c">цвет нечетных строк: # <input type=text size=6 name="odd" value="<?echo $_POST['odd']?>" maxlength=6 class="txtinp"></td> </tr></table> <table border=0 cellspacing=1 cellpadding=0 > <tr height=24> <td width="200" bgcolor=#dddddd class="c">цвет рамки таблицы: # <input type=text size=6 name="bordercolor" value="<?echo $_POST['bordercolor']?>" maxlength=6 class="txtinp"></td> <td width="200" bgcolor=#dddddd class="c">цвет четных строк: # <input type=text size=6 name="even" value="<?echo $_POST['even']?>" maxlength=6 class="txtinp"></td> </tr></table> <table border=0 cellspacing=1 cellpadding=0 > <tr height=24> <td width="86" bgcolor=#dddddd class="rsm">размер шрифта: <td bgcolor=#dddddd class="rsm"> <select name="sizefont" size=1 style="FONT: 11px arial, tahoma, verdana; WIDTH: 35px; COLOR: #444444; TEXT-DECORATION: none"> <option value="<?echo $_POST['sizefont']?>" ><?echo $_POST['sizefont']?></option> <option value="1" >1</option> <option value="2" >2</option> <option value="3" >3</option> </select></td> <td width=41 bgcolor=#dddddd class="rsm"> шрифт:</td><td bgcolor=#dddddd ><select name="font" size=1 style="FONT: 11px arial, tahoma, verdana; WIDTH: 91px; COLOR: #444444; TEXT-DECORATION: none"> <option value="<?echo $_POST['font']?>"><?echo $_POST['font']?></option> <option value="Arial">Arial</option> <option value="Tahoma">Tahoma</option> <option value="Verdana">Verdana</option> <option value="Times New Roman">Times New Roman</option> <option value="Georgia">Georgia</option> </select> </td><td width="137" bgcolor=#dddddd class="rsm" >ширина таблицы:<input type=text size=1 name="width" value="<?echo $_POST['width']?>" maxlength=3 class="txtinp"> px. </td></tr> </table> <table border=0 cellspacing=1 cellpadding=0 > <tr height=24> <td width="320" bgcolor=#dddddd > <input name="html" class="buttinp" type="submit" value="Если все ОК, получить код HTML"></td> <td bgcolor=#dddddd width="90" class="c" > <input name="wide" class="buttinp" type="submit" value="Просмотр"> </td></tr> </table>
</td><td > </td><td > <table border=0 cellspacing=1 cellpadding=1 width=400> <tr > <td width=30 bgcolor=#992831> </td><td width=30 style="cursor:text;">992831</td> <td width=30 bgcolor=#ee0000> </td><td width=30 style="cursor:text;">EE0000</td> <td width=30 bgcolor=#ff666b> </td><td width=30 style="cursor:text;">FF666B</td> <td width=30 bgcolor=#ffd8dc> </td><td width=30 style="cursor:text;">FFD8DC</td> <td width=30 bgcolor=#FFF0F0> </td><td width=30 style="cursor:text;">FFF0F0</td> </tr> <tr > <td width=30 bgcolor=#984124> </td><td width=30 style="cursor:text;">984124</td> <td width=30 bgcolor=#e46900> </td><td width=30 style="cursor:text;">E46900</td> <td width=30 bgcolor=#F69759> </td><td width=30 style="cursor:text;">F69759</td> <td width=30 bgcolor=#EFC378> </td><td width=30 style="cursor:text;">EFC378</td> <td width=30 bgcolor=#F3EBDA> </td><td width=30 style="cursor:text;">F3EBDA</td> </tr> <tr > <td width=30 bgcolor=#41557a> </td><td width=30 style="cursor:text;">41557A</td> <td width=30 bgcolor=#a5b8d6> </td><td width=30 style="cursor:text;">A5B8D6</td> <td width=30 bgcolor=#c0d3f1> </td><td width=30 style="cursor:text;">C0D3F1</td> <td width=30 bgcolor=#d0def6> </td><td width=30 style="cursor:text;">D0DEF6</td> <td width=30 bgcolor=#f6f9fd> </td><td width=30 style="cursor:text;">F6F9FD</td> </tr> <tr > <td width=30 bgcolor=#1a3469> </td><td width=30 style="cursor:text;">1A3469</td> <td width=30 bgcolor=#6884ac> </td><td width=30 style="cursor:text;">6884AC</td> <td width=30 bgcolor=#bdcde4> </td><td width=30 style="cursor:text;">BDCDE4</td> <td width=30 bgcolor=#c6d4e8> </td><td width=30 style="cursor:text;">C6D4E8</td> <td width=30 bgcolor=#ecf2fb> </td><td width=30 style="cursor:text;">ECF2FB</td> </tr> <tr > <td width=30 bgcolor=#233353> </td><td width=30 style="cursor:text;">233353</td> <td width=30 bgcolor=#8092C6> </td><td width=30 style="cursor:text;">8092C6</td> <td width=30 bgcolor=#A0B2D3> </td><td width=30 style="cursor:text;">A0B2D3</td> <td width=30 bgcolor=#CED4E1> </td><td width=30 style="cursor:text;">CED4E1</td> <td width=30 bgcolor=#E0E4EC> </td><td width=30 style="cursor:text;">E0E4EC</td> </tr> <tr > <td width=30 bgcolor=#004e30> </td><td width=30 style="cursor:text;">004E30</td> <td width=30 bgcolor=#00723e> </td><td width=30 style="cursor:text;">00723E</td> <td width=30 bgcolor=#66a073> </td><td width=30 style="cursor:text;">66A073</td> <td width=30 bgcolor=#b4dac1> </td><td width=30 style="cursor:text;">B4DAC1</td> <td width=30 bgcolor=#F0FFF0> </td><td width=30 style="cursor:text;">F0FFF0</td> </tr> <tr > <td width=30 bgcolor=#000000> </td><td width=30 style="cursor:text;">000000</td> <td width=30 bgcolor=#a4a4a4> </td><td width=30 style="cursor:text;">D4D4D4</td> <td width=30 bgcolor=#dedede> </td><td width=30 style="cursor:text;">DEDEDE</td> <td width=30 bgcolor=#eeeeee> </td><td width=30 style="cursor:text;">EEEEEE</td> <td width=30 bgcolor=#FaFaFa> </td><td width=30 style="cursor:text;">FAFAFA</td>
</tr> </table> </td></tr></table> </center> <br> </td> </tr> </table>
<center> <table border=0 cellspacing=0 cellpadding=0 width="800" > <tr><td bgcolor=silver><center>
<?php
$wide=FALSE;
if(isset($_POST['wide'])){ if($font =="")$font = "Tahoma"; if($sizefont =="")$sizefont = "2"; if($colorfont =="")$colorfont = "000000"; if($even =="")$even = "FFFFFF"; if($odd =="")$odd = "FFFFFF"; if($width =="")$width = "100%"; if($bordercolor =="")$bordercolor = "000000";
echo "<center><table border=0 cellspacing=0 cellpadding=0 width=\"$width\" > <tr><td valign=top width=\"100%\"> <table border=0 cellspacing=1 cellpadding=0 width=\"100%\" > <tr valign=top><td bgcolor=\"$bordercolor\" width=\"100%\"><table border=0 cellspacing=1 cellpadding=2 width=\"100%\">"; $file_csv = "download/".$_FILES["filename"]["name"]; if(file_exists($file_csv)){ $open = fopen("$file_csv", "r"); $colspan = fgets($open); fclose($open);
$res_col = count_chars($colspan,0); for($j=0;$j < count($res_col);$j++){ if ($res_col[$j] != 0 && (chr($j) === ";")) { $col = $res_col[$j] + 1;
} } $f=fopen("$file_csv", "r"); flock($f, LOCK_SH); while(!feof($f)){
$line = fgets($f); $line = str_replace('"""','"',$line); $line = str_replace('«','"',$line); $line = str_replace('»','"',$line); if($line == "")continue; $arr = explode(";", $line);
$row_begin = "<td><font size=\"$sizefont\" color=\"$colorfont\" face=\"$font\">"; $row_end = "</font></td>";
if($col == "2") $row = "$row_begin".$arr[0]."$row_end"."$row_begin".$arr[1]."$row_end"; if($col == "3") $row = "$row_begin".$arr[0]."$row_end"."$row_begin".$arr[1]."$row_end"."$row_begin".$arr[2]."$row_end"; if($col == "4") $row = "$row_begin".$arr[0]."$row_end"."$row_begin".$arr[1]."$row_end"."$row_begin".$arr[2]."$row_end"."$row_begin".$arr[3]."$row_end"; if($col == "5") $row = "$row_begin".$arr[0]."$row_end"."$row_begin".$arr[1]."$row_end"."$row_begin".$arr[2]."$row_end"."$row_begin".$arr[3]."$row_end"."$row_begin".$arr[4]."$row_end"; if($col == "6") $row = "$row_begin".$arr[0]."$row_end"."$row_begin".$arr[1]."$row_end"."$row_begin".$arr[2]."$row_end"."$row_begin".$arr[3]."$row_end"."$row_begin".$arr[4]."$row_end"."$row_begin".$arr[5]."$row_end"; if($col == "7") $row = "$row_begin".$arr[0]."$row_end"."$row_begin".$arr[1]."$row_end"."$row_begin".$arr[2]."$row_end"."$row_begin".$arr[3]."$row_end"."$row_begin".$arr[4]."$row_end"."$row_begin".$arr[5]."$row_end"."$row_begin".$arr[6]."$row_end"; if($col == "8") $row = "$row_begin".$arr[0]."$row_end"."$row_begin".$arr[1]."$row_end"."$row_begin".$arr[2]."$row_end"."$row_begin".$arr[3]."$row_end"."$row_begin".$arr[4]."$row_end"."$row_begin".$arr[5]."$row_end"."$row_begin".$arr[6]."$row_end"."$row_begin".$arr[7]."$row_end"; if($col == "9") $row = "$row_begin".$arr[0]."$row_end"."$row_begin".$arr[1]."$row_end"."$row_begin".$arr[2]."$row_end"."$row_begin".$arr[3]."$row_end"."$row_begin".$arr[4]."$row_end"."$row_begin".$arr[5]."$row_end"."$row_begin".$arr[6]."$row_end"."$row_begin".$arr[7]."$row_end"."$row_begin".$arr[8]."$row_end"; if($col == "10") $row = "$row_begin".$arr[0]."$row_end"."$row_begin".$arr[1]."$row_end"."$row_begin".$arr[2]."$row_end"."$row_begin".$arr[3]."$row_end"."$row_begin".$arr[4]."$row_end"."$row_begin".$arr[5]."$row_end"."$row_begin".$arr[6]."$row_end"."$row_begin".$arr[7]."$row_end"."$row_begin".$arr[8]."$row_end"."$row_begin".$arr[9]."$row_end"; if($col == "11") $row = "$row_begin".$arr[0]."$row_end"."$row_begin".$arr[1]."$row_end"."$row_begin".$arr[2]."$row_end"."$row_begin".$arr[3]."$row_end"."$row_begin".$arr[4]."$row_end"."$row_begin".$arr[5]."$row_end"."$row_begin".$arr[6]."$row_end"."$row_begin".$arr[7]."$row_end"."$row_begin".$arr[8]."$row_end"."$row_begin".$arr[9]."$row_end"."$row_begin".$arr[10]."$row_end"; if($col == "12") $row = "$row_begin".$arr[0]."$row_end"."$row_begin".$arr[1]."$row_end"."$row_begin".$arr[2]."$row_end"."$row_begin".$arr[3]."$row_end"."$row_begin".$arr[4]."$row_end"."$row_begin".$arr[5]."$row_end"."$row_begin".$arr[6]."$row_end"."$row_begin".$arr[7]."$row_end"."$row_begin".$arr[8]."$row_end"."$row_begin".$arr[9]."$row_end"."$row_begin".$arr[10]."$row_end"."$row_begin".$arr[11]."$row_end"; if($col == "13") $row = "$row_begin".$arr[0]."$row_end"."$row_begin".$arr[1]."$row_end"."$row_begin".$arr[2]."$row_end"."$row_begin".$arr[3]."$row_end"."$row_begin".$arr[4]."$row_end"."$row_begin".$arr[5]."$row_end"."$row_begin".$arr[6]."$row_end"."$row_begin".$arr[7]."$row_end"."$row_begin".$arr[8]."$row_end"."$row_begin".$arr[9]."$row_end"."$row_begin".$arr[10]."$row_end"."$row_begin".$arr[11]."$row_end"."$row_begin".$arr[12]."$row_end"; if($col == "14") $row = "$row_begin".$arr[0]."$row_end"."$row_begin".$arr[1]."$row_end"."$row_begin".$arr[2]."$row_end"."$row_begin".$arr[3]."$row_end"."$row_begin".$arr[4]."$row_end"."$row_begin".$arr[5]."$row_end"."$row_begin".$arr[6]."$row_end"."$row_begin".$arr[7]."$row_end"."$row_begin".$arr[8]."$row_end"."$row_begin".$arr[9]."$row_end"."$row_begin".$arr[10]."$row_end"."$row_begin".$arr[11]."$row_end"."$row_begin".$arr[12]."$row_end"."$row_begin".$arr[13]."$row_end"; if($col == "15") $row = "$row_begin".$arr[0]."$row_end"."$row_begin".$arr[1]."$row_end"."$row_begin".$arr[2]."$row_end"."$row_begin".$arr[3]."$row_end"."$row_begin".$arr[4]."$row_end"."$row_begin".$arr[5]."$row_end"."$row_begin".$arr[6]."$row_end"."$row_begin".$arr[7]."$row_end"."$row_begin".$arr[8]."$row_end"."$row_begin".$arr[9]."$row_end"."$row_begin".$arr[10]."$row_end"."$row_begin".$arr[11]."$row_end"."$row_begin".$arr[12]."$row_end"."$row_begin".$arr[13]."$row_end"."$row_begin".$arr[14]."$row_end";
$n++; if($n%2!=0){ echo"<tr bgcolor=\"",$odd,"\">",$row,"</tr>\n";} else{echo"<tr bgcolor=\"",$even,"\">",$row,"</tr>\n";} } flock($f, LOCK_UN); fclose($f); echo "</table></td></tr></table></td></tr></table></center>";
} }
?> </center> </td></tr></table></center> </body>
</html>
|
Посмотрите в чем косяк? При загрузке файла прога определяет что за файл и сколько столбцов, а вот ниже уже не передает эти параметры для формирования непосредственно таблицы
--------------------
Всякая чепуха посещает голову, когда она пуста ....
|