hallo there

i read an excel file using excel_reader library.

The excel file contains greek characters.

i get the data and store it into arrays (it is a common xls file that contains names, lastnames and fathersnames) using characters set utf-8.

the code works fine

//i uploaded the xls file

$data = new Spreadsheet_Excel_Reader($_FILES["file"]["name"]);

error_reporting(E_ALL ^ E_NOTICE);


$num_row = $data->rowcount() + 1;
$num_col = $data->colcount() + 1;


//get details about the data i need
$line=$_POST['line']; 
$colname=$_POST['name']; 
$collastname=$_POST['epitheta']; 
$colfather=$_POST['fname']; 
$tmima=$_POST['tmima']; 
$check=$_POST['check']; 

$y=1;
for ($i=$line+1; $i< $num_row; $i++)
 {

 if ($data->val($i, $colname) !== '')
 {
   $name[$y] = $data->val($i, $colname);
   $lname[$y] = $data->val($i, $collastname);
  $fname[$y] = $data->val($i, $colfather);
  $y++;
  }
  }    

the code works just fine.
if my character set on my page is utf-8 and i echo the arrays i see what i should see.

The first problem is that i want to show that data into a page with charset windows-1253 because into the same page there is some other greek text i need to show.

if i set my whole page character enconding into utf-8 then i can see the names and lnames but eveyrything else that is written in greek are not understantable. When i set the character enconding into windows-1253 i can not see the names!!!!

the second problem is probably the same.
i have made a function that converts evey greek letter into english (i want to construct usernames fron teh lasta names. the function works just fine.(it s been tested)

function greeklish($Name)
{ 
$greek   = array('á','Ü','¢','Á','â','Â','ã', 'Ã', 'ä','Ä','å','Ý','Å','¸','æ','Æ','ç','Þ','Ç','è','È','é','ß','ú','À','É','º', 'ê','Ê','ë','Ë','ì','Ì','í','Í','î','Î','ï','ü','Ï','¼','ð','Ð','ñ','Ñ','ó','ò', 'Ó','ô','Ô','õ','ý','Õ','¾','ö','Ö','÷','×','ø','Ø','ù','þ','Ù','¿',' ',"'","'",',');
$english = array('a', 'a','A','A','b','B','g','G','d','D','e','e','E','E','z','Z','i','i','I','th','Th', 'i','i','i','i','I','I','k','K','l','L','m','M','n','N','x','X','o','o','O','O','p','P' ,'r','R','s','s','S','t','T','u','u','Y','Y','f','F','ch','Ch','ps','Ps','o','o','O','O','_','_','_','_');
$string  = str_replace($greek, $english, $Name);
return $string;
} 

so i want to convert the names array into its latin characters

for ($o=1; $o < $y; $o++)
 {

   $name[$o]=greeklish($name[$o]);
 }  

the result is that the table name contains not understantable characters

Character encoding can be a pain in the proverbial.

You could try converting all of content to a single character encoding using the iconv function.

I would suggest changing if from windows-1253 to UTF-8.

Would another alternative option be to try changing the character encoding of the Excel file?

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.