function uc2html($str) {
$ret = '';
for( $i=0; $i<strlen($str)/2; $i++ ) {
$charcode = ord($str[$i*2])+256*ord($str[$i*2+1]);
$ret .= '&#'.$charcode;
}
return $ret;
}
Все было бы хорошо, если бы эти данные из файла не шли в базу, а сразу в HTML.
Спустя 46 минут, 32 секунды (12.08.2011 - 15:54) Winston написал(а):
Цитата (Karo @ 12.08.2011 - 15:07) |
Все было бы хорошо, если бы эти данные из файла не шли в базу, а сразу в HTML |
А ты их не пиши в базу
Спустя 2 часа, 28 минут, 45 секунд (12.08.2011 - 18:23) Гость_Karo написал(а):
надо чтобы пошло в базу
Спустя 15 минут, 36 секунд (12.08.2011 - 18:38) Karo написал(а):
мне надо чтобы в базе место 44,հմյֆգյ этого были нормальные слова(((
Спустя (12.08.2011 - 18:26) Winston написал(а):
Ну тогда вместо return $ret;
Напиши
Напиши
return html_entity_decode($ret);
Спустя 18 минут, 29 секунд (12.08.2011 - 18:44) Karo написал(а):
не получается,nechego ne proisxodit..
Спустя 4 минуты, 51 секунда (12.08.2011 - 18:49) Winston написал(а):
Цитата (Karo @ 12.08.2011 - 18:38) |
мне надо чтобы в базе место 44,հմյֆգյ этого были нормальные слова((( |
А так получается :)
echo html_entity_decode(",հմյֆգ");
Спустя 8 минут, 46 секунд (12.08.2011 - 18:58) Karo написал(а):
так выводится нормально но мне надо чтобы все символы были кодирование перед передачей в базу...
Спустя 1 минута, 30 секунд (12.08.2011 - 18:59) Karo написал(а):
и в базе их можно было читать..
Спустя 1 минута, 41 секунда (12.08.2011 - 19:01) Karo написал(а):
Свернутый текст
<?php
function print_error( $msg )
{
print <<<END
<tr>
<td colspan=5><font color=red><b>Ошибка: </b></font>$msg</td>
<td><font color=red><b>Отклоненный</b></font></td>
</tr>
END;
}
function getHeader( $exc, $data )
{
// строка
$ind = $data['data'];
if( $exc->sst[unicode][$ind] )
return convertUnicodeString ($exc->sst['data'][$ind]);
else
return $exc->sst['data'][$ind];
}
function convertUnicodeString( $str )
{
for( $i=0; $i<strlen($str)/2; $i++ )
{
$no = $i*2;
$hi = ord( $str[$no+1] );
$lo = $str[$no];
if( $hi != 0 )
continue;
elseif( ! ctype_alnum( $lo ) )
continue;
else
$result .= $lo;
}
return $result;
}
function uc2html($str) {
$ret = '';
for( $i=0; $i<strlen($str)/2; $i++ ) {
$charcode = ord($str[$i*2])+256*ord($str[$i*2+1]);
$ret .= '&#'.$charcode;
}
return $ret;
}
function get( $exc, $data )
{
switch( $data['type'] )
{
// строка
case 0:
$ind = $data['data'];
if( $exc->sst[unicode][$ind] )
return uc2html($exc->sst['data'][$ind]);
else
return $exc->sst['data'][$ind];
// целое
case 1:
return (integer) $data['data'];
// вещественное число
case 2:
return (float) $data['data'];
case 3:
return gmdate("m-d-Y",$exc->xls2tstamp($data[data]));
default:
return '';
}
}
function fatal($msg = '') {
echo '[Фатальная ошибка]';
if( strlen($msg) > 0 )
echo ": $msg";
echo "<br>\nВыполнение скрипта остановлено<br>\n";
if( $f_opened) @fclose($fh);
exit();
}
function getTableData ( $ws, $exc ) {
global $excel_file, $db_table;
global $db_host, $db_name, $db_user, $db_pass;
$data = $ws['cell'];
echo <<<FORM
<form action="" method="POST" name="db_export">
<table border="0" cellspacing="1" cellpadding="2" align="center" bgcolor="#666666">
<tr bgcolor="#f1f1f1">
FORM;
// Форма имена полей
if ( !$_POST['useheaders'] ) {
for ( $j = 0; $j <= $ws['max_col']; $j++ ) {
$field = "field" . $j;
echo <<<HEADER
<td>
<input type="checkbox" name="fieldcheck[$j]" value="$j" checked title="Проверка полей">
<input type="text" name="fieldname[$j]" value="$field" title="Название поля">
</td>
HEADER;
}
}
else {
for ( $j = 0; $j <= $ws['max_col']; $j++ ) {
$field = getHeader ( $exc, $data[0][$j] );
$field = ereg_replace ( "^[0-9]+", "", $field );
if (empty ($field) )
$field = "field" . $j;
echo <<<HEADER
<td>
<input type="checkbox" name="fieldcheck[$j]" value="$j" checked title="Проверка поля">
<input type="text" name="fieldname[$j]" value="$field" title="Имя поля">
</td>
HEADER;
}
}
echo "</tr>";
foreach( $data as $i => $row ) { // Выходные данные и подготовка команд SQL
if ( $i == 0 && $_POST['useheaders'] )
continue;
echo "<tr bgcolor=\"#ffffff\">";
for ( $j = 0; $j <= $ws['max_col']; $j++ ) {
$cell = get ( $exc, $row[$j] );
echo "<td>$cell</td>";
}
echo "</tr>";
$i++;
}
if ( empty ( $db_table ) )
$db_table = "Table1";
echo <<<FORM2
</table><br>
<table align="center" width="390">
<tr><td>Имя таблицы:</td><td> <input type="text" name="db_table" value="$db_table"></td></tr>
<tr><td>Уничтожить таблицу если существует:</td><td><input type="checkbox" name="db_drop" checked></td></tr>
<tr><td colspan="2">
<i>Отключите эту опцию, чтобы добавить данные в существующую таблицу.<br><font color="red">
Обратите внимание на то, что если имена полей не соответствуют именам полей в таблице возникает ОШИБКА!</td></tr>
<tr><td>Имя узла базы данных:</td><td> <input type="text" size=30 name="db_host" value="$db_host"></td></tr>
<tr><td>Имя базы данных:</td><td> <input type="text" size=30 name="db_name" value="$db_name"></td></tr>
<tr><td>Пользователь базы данных:</td><td> <input type="text" size=30 name="db_user" value="$db_user"></td></tr>
<tr><td>Пароль доступа к базе данных:</td><td> <input type="password" size=30 name="db_pass" value="$db_pass"></td></tr>
<tr><td></td><td><input type="hidden" name="excel_file" value="$excel_file">
<input type="hidden" name="step" value="2">
<input type="submit" name="submit" value="Output"></td></tr>
</form>
</table>
<br>
<div align="right">
<a href="http://www.zakkis.ca" style="font-size: 9px; text-decoration: none; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;">ZAKKIS Tech. 2003 All Rights Reserved.</a>
</div>
FORM2;
}
function prepareTableData ( $exc, $ws, $fieldcheck, $fieldname ) {
$data = $ws['cell'];
foreach( $data as $i => $row ) { // Выходные данные и подготовка команд SQL
if ( $i == 0 && $_POST['useheaders'] )
continue;
$SQL[$i] = "";
for ( $j = 0; $j <= $ws['max_col']; $j++ ) {
if ( isset($fieldcheck[$j]) ) {
$SQL[$i] .= $fieldname[$j];
$SQL[$i] .= "=\"";
$SQL[$i] .= addslashes ( get ( $exc, $row[$j] ) );
$SQL[$i] .= "\"";
$SQL[$i] .= ",";
}
}
$SQL[$i] = rtrim($SQL[$i], ',');
$i++;
}
return $SQL;
}
?>
вот весь код...
! |
Winston |
Спустя 54 секунды (12.08.2011 - 19:02) Karo написал(а):
очень надо please...
Спустя 3 минуты, 31 секунда (12.08.2011 - 19:05) Winston написал(а):
А так попробуйте переписать ф-ю
И где в коде который вы выложили запись в базу ?
Свернутый текст
function uc2html($str) {
$ret = '';
for( $i=0; $i<strlen($str)/2; $i++ ) {
$charcode = ord($str[$i*2])+256*ord($str[$i*2+1]);
$ret .= html_entity_decode('&#'.$charcode);
}
return $ret;
}
И где в коде который вы выложили запись в базу ?
Спустя 8 минут, 34 секунды (12.08.2011 - 19:14) Karo написал(а):
не получилось я сам не знаю может в другом файле?