PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Без описания
Поиск в теме | Версия для печати
Sesil
Отправлено: 17 Января, 2015 - 13:40:42
Новичок
Покинул форум
Сообщений всего: 7
Дата рег-ции: Янв. 2015
Помог: 0 раз(а)
Использую вот этот код:
PHP:
скопировать код в буфер обмена
<?PHP
$mail_name = "Gmail" ; // имя почты
$mail_adress = "myemail@gmail.com" ; // адрес
$mail_imap = "imap.gmail.com" ; // имя imap-сервера
$mail_smtp = "smtp.gmail.com" ; // smtp-сервер (нам не нужен)
$mail_user_name = "myemail@gmail.com" ; // имя пользователя
$mail_passport = "mypass" ; // пароль
$mail_in_folder = "INBOX" ; // папка imap (INBOX-входящие, TRASH-корзина, и др. )
$ml = imap_open ( "{" . $mail_imap . ":993/imap/ssl}" . mail_in_folder
, $mail_user_name , $mail_passport ) ; if ( $ml ) {
if ( $n > 0 ) {
// формируем массив полученных писем
for ( $i = 1 ; $i <= $n ; $i ++ ) {
$h = $h -> from ;
foreach ( $h as $k => $v ) {
$mailbox = $v -> mailbox ;
$host = $v -> host ;
$personal = $v -> personal ;
$email = $mailbox . '@' . $host ;
}
$uid = imap_uid ( $ml , $headerArr -> Msgno ) ; $mails [ ] = $email ;
$uids [ ] = $uid ;
}
// на выходе имеем 2 массива $mails - адресаты (можно использовать для лога), $uids - уникальные идентификаторы писем
for ( $i = 0 ; $i < count( $mails ) ; $i ++ ) {
$uid = $uids [ $i ] ;
$email = $mails [ $i ] ;
foreach ( $s as $k => $v ) {
$subj = $v -> subject ;
}
// тема письма (тоже для лога)
// получаем структуру вложения
$parts = 1 ; // количество вложений (если ожидаем больше одного, по делаем цикл)
while ( isset ( $structure -> parts [ $parts ] -> subtype ) ) { $att_type = $structure -> parts [ $parts ] -> subtype ;
if ( $structure -> parts [ $parts ] -> ifdparameters == 1) {
$file_name = imap_utf8 ( $structure -> parts [ $parts ] -> dparameters [ 0
] -> value ) ; } else {
$file_name = imap_utf8 ( $structure -> parts [ $parts ] -> parameters [ 0
] -> value ) ; }
// удаляем кавычки
// удаляем странный символ, заменяющий Й (т.к. Й заменяется на И возврат назад и `)
$file_name = iconv ( 'UTF-8' , 'cp1251//ignore' , $file_name ) ; $file_name = iconv ( 'cp1251' , 'UTF-8' , $file_name ) ; // из хитрой й получается и, что не есть хорошо, но пока сойдет // проверяем тип файла, естественно можно сделать свой фильтр
if ( ( $att_type == 'X-EXCEL' ) || ( $att_type == 'VND.OPENXMLFORMATS-OFFICEDOCUMENT.SPREADSHEETML.SHEET' ) ||
( $att_type == 'VND.MS-EXCEL' ) || ( $att_type == 'X-MSEXCEL' ) || ( $att_type == 'VND.MS-EXCEL.12' ) ) {
// получаем содержимое вложения
// файл сохранён, обрабатываем дальше
}
}
}
// тут можно письмо удалить
// удалили
}
}
}
}
?>
При попытке открыть пишет ниже указанную ошибку.
Цитата: 502 Bad Gateway
nginx/1.6.2
А в журнале ошибок пишет
[17-Jan-2015 14:38:51 Europe/Moscow] PHP Notice: Undefined property: stdClass::$personal in /home/public_html/gmail.php on line 22
Вот 22 строчка на которую он жалуется
В чем может быть проблема?
(Добавление)
Через Var_dump и Die удалось открывать одно из писем, но письма все ровно не удаляются даже если die я ставлю после первого цикла. в чем может быть загвоздка?(Отредактировано автором: 17 Января, 2015 - 13:54:59)
soulner
Отправлено: 26 Января, 2015 - 08:44:50
Новичок
Покинул форум
Сообщений всего: 20
Дата рег-ции: Авг. 2012
Откуда: Россия, Питер
Помог: 0 раз(а)
Sesil пишет: Да все получилось, спасибо большое. а подскажите пожалуйста, как узнать дату и время письма?
Тут можно и самостоятельно вопрос решить. Даю направление:
после $h = imap_header($ml, $i); нужно посмотреть что внутри $h, например
и там поискать переменную, похожую на date
Sesil
Отправлено: 12 Февраля, 2015 - 03:16:37
Новичок
Покинул форум
Сообщений всего: 7
Дата рег-ции: Янв. 2015
Помог: 0 раз(а)
Большое спасибо, все просто супер. А подскажите пожалуйста как реализовать с новым кодом получение файлов?
(Добавление)
Код который я использую
PHP:
скопировать код в буфер обмена
<?
echo "Запуск системы...\n " ;
$messages_to_process = 0 ;
$tocontinue = 0 ;
{
$tocontinue = $argv [ 1] ;
}
$inbox = imap_open ( $imap_hostname , $imap_username , $imap_password , OP_SHORTCACHE
) or
die ( 'Cannot connect to imap: ' . imap_last_error ( ) ) ;
$dblink = mysqli_connect ( $db_hostname , $db_username , $db_password , $db_base ) ; }
{
}
else
{
}
echo "Подключено!\n " ;
$messages_to_process = $num_mgs ;
echo "$num_mgs сообщений для обработки скриптом\n " ;
if ( $emails === false )
{
}
if ( $tocontinue != 0)
{
$messages_to_process = $num_mgs - $tocontinue ;
}
for ( $curid = $tocontinue ; $curid < sizeof ( $emails ) ; $curid ++ ) {
{
imap_gc( $inbox , IMAP_GC_ELT) ;
}
$email_number = $emails [ $curid ] ;
{
}
$messages_to_process --;
print "-------------------------------------------------\n " ;
//$overview = imap_fetch_overview($inbox,$email_number,0);
//$struct = imap_fetchstructure($inbox,$email_number);
// FIXME: wtf?!
if ( empty ( $pheaders -> sender ) && empty ( $pheaders -> to ) ) {
echo "rh: " ; print_r ( $rheaders ) ; echo "\n " ; echo "ph: " ; print_r ( $pheaders ) ; echo "\n " ; echo "ib: " ; print_r ( $inbox ) ; echo "\n " ; printf ( "FAILURE: %d !\n " , $email_number ) ; continue ;
}
printf ( "UID процесс: %s \n " , $email_number ) ;
$ft_subj = decodeHeader
( imap_utf8 ( $pheaders -> subject ) ) ; //$ft_subj = imap_utf8($pheaders->subject);
print 'subj: ' . $ft_subj . "\n " ;
$ft_date = $pheaders -> date ;
print 'date: ' . $ft_date . "\n " ;
if ( ! is_array ( $pheaders -> sender ) || count ( $pheaders -> sender ) < 1
) {
die ( "Something is wrong with SENDER address\n " ) ; }
$ft_sender = $pheaders -> sender [ 0 ] -> mailbox . "@" . $pheaders -> sender [ 0] -> host ;
print ' sender: ' . $ft_sender . "\n " ;
{
// die("Something is totally wrong with TO addresses\n"); // may happen when there's only CC address
}
{
$receivers = $pheaders -> to ;
}
{
}
{
}
foreach ( $receivers as $id => $val )
{
// echo " to: " . $val->mailbox . "@" . $val->host . "\n";
$receivers [ $id ] = $val -> mailbox . "@" . $val -> host ;
}
/* make comma-separated list of recipients */
$ft_receivers = implode ( ', ' , $receivers ) ; print "to: " . $ft_receivers . "\n " ;
/* email body */
$ft_data = $rheaders . imap_body ( $inbox , $email_number , FT_UID
| FT_PEEK
| FT_INTERNAL
) ;
$ft_date_converted = date ( "Y-m-d H:i:s" , strtotime ( $ft_date ) + 25200
) ; //$ft_date_converted = date("Y-m-d g:i:s", strtotime($ft_date) + 125000);
//$tt=$db->getQuery();
//var_dump($tt);
//die();
}
function decodeHeader( $hdr , $cset = 'UTF8' )
{
// Copied nearly intact from PEAR's Mail_mimeDecode.
$hdr = preg_replace ( '/(=\?[^?]+\?(q|b)\?[^?]*\?=)(\s)+=\?/i' , '\1=?' , $hdr ) ; $hdr = $hdr [ 0] ;
while ( preg_match ( '/(=\?([^?]+)\?(q|b)\?([^?]*)\?=)/i' , $hdr , $m ) ) {
$encoded = $m [ 1] ;
$text = $m [ 4] ;
switch ( $encoding )
{
case 'b' :
break ;
case 'q' :
foreach ( $m [ 1] as $value )
break ;
}
if ( $charset !== $cset )
$text = charconv( $charset , $cset , $text ) ;
}
return $hdr ;
}
/* workaround to make most of headers to parse properly */
function charconv( $enc_from , $enc_to , $text )
{
return iconv ( $enc_from , $enc_to , $text ) ; return recode_string( "$enc_from ..$enc_to " , $text ) ;
return $text ;
}
(Добавление)
Добавил строки
Цитата: [1]=>
object(stdClass)#130 (13) {
["type"]=>
int(3)
["encoding"]=>
int(3)
["ifsubtype"]=>
int(1)
["subtype"]=>
string(3) "ZIP"
["ifdescription"]=>
int(0)
["ifid"]=>
int(0)
["bytes"]=>
int(10364)
["ifdisposition"]=>
int(1)
["disposition"]=>
string(10) "ATTACHMENT"
["ifdparameters"]=>
int(1)
["dparameters"]=>
array(1) {
[0]=>
object(stdClass)#131 (2) {
["attribute"]=>
string(8) "FILENAME"
["value"]=>
string(8) "logs.zip"
}
}
["ifparameters"]=>
int(1)
["parameters"]=>
array(1) {
[0]=>
object(stdClass)#132 (2) {
["attribute"]=>
string(4) "NAME"
["value"]=>
string(8) "logs.zip"
}
}
Не понимаю как указать что здесь файл и что нужно сохранить?
(Добавление)
Сделал вот так, но почему то не работает =(
PHP:
скопировать код в буфер обмена
$parts = 1 ;
while ( isset ( $structure -> parts [ $parts ] -> subtype ) ) { $att_type = $structure -> parts [ $parts ] -> subtype ;
if ( $structure -> parts [ $parts ] -> ifdparameters == 1) {
$file_name = imap_utf8 ( $structure -> parts [ $parts ] -> dparameters [ 0
] -> value ) ; } else {
$file_name = imap_utf8 ( $structure -> parts [ $parts ] -> parameters [ 0
] -> value ) ; }
if ( ( $att_type == 'zip' ) || ( $att_type == 'TXT' ) ) {
// получаем содержимое вложения
if ( file_put_contents ( '/srv/www/garant.itsdv.ru/htdocs/logs/garant/' , $file_name , $attach ) == 0 ) { // файл сохранён, обрабатываем дальше
}
}
}
Подскажите пожалуйста в чем моя ошибка? ну или хотя бы направьте в нужном направлении.
(Добавление)
Жалуется Fatal error: Maximum execution time of 30 seconds exceeded in
На вот эту строчку
(Отредактировано автором: 12 Февраля, 2015 - 03:20:38)
Sesil
Отправлено: 12 Февраля, 2015 - 05:27:02
Новичок
Покинул форум
Сообщений всего: 7
Дата рег-ции: Янв. 2015
Помог: 0 раз(а)
Вот мой конечный вариант который почему то не хочет работать.
PHP:
скопировать код в буфер обмена
$parts = 1 ;
while ( isset ( $structure -> parts [ $parts ] -> subtype ) ) { $att_type = $structure -> parts [ $parts ] -> subtype ;
if ( $structure -> parts [ $parts ] -> ifdparameters == 1) {
$file_name = imap_utf8 ( $structure -> parts [ $parts ] -> dparameters [ 0
] -> value ) ; } else {
$file_name = imap_utf8 ( $structure -> parts [ $parts ] -> parameters [ 0
] -> value ) ; }
if ( ( $att_type == 'zip' ) || ( $att_type == 'txt' ) ) {
// получаем содержимое вложения
// файл сохранён, обрабатываем дальше
echo "ok?" ;
}
}
}
Sesil
Отправлено: 12 Февраля, 2015 - 10:01:06
Новичок
Покинул форум
Сообщений всего: 7
Дата рег-ции: Янв. 2015
Помог: 0 раз(а)
Вот так выглядит мой кусок кода сейчас
PHP:
скопировать код в буфер обмена
if ( ( $att_type == 'ZIP' ) || ( $att_type == 'TXT' ) ) {
// получаем содержимое вложения
// файл сохранён, обрабатываем дальше
echo "ok?" ;
}
}
Вроде бы все же должно работать. а почему то не работает =(
soulner
Отправлено: 19 Февраля, 2015 - 08:01:18
Новичок
Покинул форум
Сообщений всего: 20
Дата рег-ции: Авг. 2012
Откуда: Россия, Питер
Помог: 0 раз(а)
Sesil пишет: Вот так выглядит мой кусок кода сейчас
PHP:
скопировать код в буфер обмена
if ( ( $att_type == 'ZIP' ) || ( $att_type == 'TXT' ) ) {
// получаем содержимое вложения
// файл сохранён, обрабатываем дальше
echo "ok?" ;
}
}
Вроде бы все же должно работать. а почему то не работает =(
Ошибка в file_put_contents. Наверное должно быть
killer67
Отправлено: 19 Февраля, 2015 - 22:09:51
Новичок
Покинул форум
Сообщений всего: 1
Дата рег-ции: Февр. 2015
Помог: 0 раз(а)
Всем привет.
Был приятно удивлен что тема вроде как жарко обсуждается уже 3 года.
Теперь к делу:
Почитав тему, обратил внимание что тут получают почту, разворачивают ее и не читая самого тела вытаскивают вложение.
Вот Может кто поделится (если есть) куском кода для расшифровки самого письма?
У меня дальше этого дело не идет:
http://dev[dot]western-soft[dot]com/?module=mail
А для получения данного текста использовал код из первых сообщений:
PHP:
скопировать код в буфер обмена
$user = 'test@western-soft.com' ;
$pass = 'test' ;
echo "<hr>" ;
$ml = imap_open ( '{western-soft.com:143/novalidate-cert}INBOX' , $user , $pass ) ; echo "$n " ;
// Получаем темы всех писем
if ( $n > 0) {
for ( $i = 0 ; $i <= $n ; $i ++ ) {
$h = $h -> from ;
foreach ( $h as $k => $v ) {
$mailbox = $v -> mailbox ;
$host = $v -> host ;
$personal = $v -> personal ;
$email = $mailbox . '@' . $host ;
}
foreach ( $s as $k => $v ) { $subj = "$v->subject " ; }
echo "<pre>" ;
echo "</pre><hr>" ;
}
}
$email_number = "4" ;
while ( isset ( $structure -> parts [ $parts ] -> subtype ) ) { $att_type = $structure -> parts [ $parts ] -> subtype ;
if ( $structure -> parts [ $parts ] -> ifdparameters == 1) {
$file_name = imap_utf8 ( $structure -> parts [ $parts ] -> dparameters [ 0
] -> value ) ; }
}
Расшифровку тем нашел в инете, где получали письмо по протоколу pop3:
PHP:
скопировать код в буфер обмена
// При отправке почты, все не латинские символы в заголовках кодируется,
// например тема письма может выглядеть так =?windows-1251?B?7/Du4uXw6uA=?=
// вот такие тексты и будет преобразовывать эта функция
function decode_mime_string( $subject ) {
$string = $subject ;
if ( ( $pos = strpos ( $string , "=?" ) ) === false ) return $string ; while ( ! ( $pos === false ) ) {
$newresult .= substr ( $string , 0
, $pos ) ; $intpos = strpos ( $string , "?" ) ; $charset = substr ( $string , 0
, $intpos ) ; $endpos = strpos ( $string , "?=" ) ; $mystring = substr ( $string , 0
, $endpos ) ; $newresult .= $mystring ;
}
Может кому пригодится, там же аттачи расшифровывают таким образом:
PHP:
скопировать код в буфер обмена
// перекодировщик тела письма.
// Само письмо может быть закодировано и данная функция приводит тело письма в нормальный вид.
// Так же и вложенные файлы будут перекодироваться этой функцией.
function compile_body( $body , $enctype , $ctype ) {
$enctype = explode ( " " , $enctype ) ; $enctype = $enctype [ 0
] ; elseif ( strtolower ( $enctype ) == "quoted-printable" ) return $body ;
}
// Функция для выдергивания метки boundary из заголовка Content-Type
// boundary это разделитель между разным содержимым в письме,
// например, чтобы отделить файл от текста письма
function get_boundary( $ctype ) {
if ( preg_match ( '/boundary[ ]?=[ ]?(["]?.*)/i' , $ctype , $regs ) ) { return trim ( "--$boundary " ) ; }
}
// если письмо будет состоять из нескольких частей (текст, файлы и т.д.)
// то эта функция разобьет такое письмо на части (в массив), согласно разделителю boundary
function explode_parts( $boundary , $body ) {
$lenbody = strpos ( $body , "\r \n $boundary --" ) - $startpos ; $body = substr ( $body , $startpos , $lenbody ) ; return explode ( $boundary . "\r \n " , $body ) ; }
Вернемся к моему вопросу, как получить сам текст письма в читабельном виде?
1. Если письмо не шифровано то получаем все довольно просто, выводим текст и все путем.
2. Если письмо шифровано, то иногда справляется декодер (тот что я показал немного выше)
3. Попытка отправить почту с gmail и/или с мобильного клиента mail.ru получил текст такого вида:
Под спойлер убрал полученное письмо дабы не гадить на форуме, тоже самое (только полностью) можно увидеть на моем сайте, адрес показал выше: dev.we.....com
Спойлер (Отобразить ) CODE (
htmlphp ):
скопировать код в буфер обмена
------ a2aeed88- 2o1Tc0pCKdVwFCLk: 1424367164 Content- Type: multipart/ alternative; boundary= "--ALT--a2aeed881424367164" ---- ALT-- a2aeed881424367164 Content- Type: text/ plain; charset= utf- 8 Content- Transfer- Encoding: base64 CtCi0LDQvCDRgtC10LzQsCDQvdCwINGA0YPRgdC80L7QvAoKLS0K0J7RgtC/ 0YDQsNCy0LvQtdC9 0L4g0LjQtyDQvNC+ 0LHQuNC70YzQvdC+ 0Lkg0J/ QvtGH0YLRiyBNYWlsLlJ1 ---- ALT-- a2aeed881424367164 Content- Type: text/ html; charset= utf- 8 Content- Transfer- Encoding: base64 CjxIVE1MPjxCT0RZPjxwIGRpcj0ibHRyIj4mIzEwNTg7JiMxMDcyOyYjMTA4NDsgJiMxMDkwOyYj MTA3NzsmIzEwODQ7JiMxMDcyOyAmIzEwODU7JiMxMDcyOyAmIzEwODg7JiMxMDkxOyYjMTA4OTsm IzEwODQ7JiMxMDg2OyYjMTA4NDs8YnI+ PGJyPjwvcD4KPHAgZGlyPSJsdHIiPi0tPGJyPgomIzEw NTQ7JiMxMDkwOyYjMTA4NzsmIzEwODg7JiMxMDcyOyYjMTA3NDsmIzEwODM7JiMxMDc3OyYjMTA4 NTsmIzEwODY7ICYjMTA4MDsmIzEwNzk7ICYjMTA4NDsmIzEwODY7JiMxMDczOyYjMTA4MDsmIzEw ODM7JiMxMTAwOyYjMTA4NTsmIzEwODY7JiMxMDgxOyAmIzEwNTU7JiMxMDg2OyYjMTA5NTsmIzEw OTA7JiMxMDk5OyBNYWlsLlJ1PC9wPgo8L0JPRFk+ PC9IVE1MPgo= ---- ALT-- a2aeed881424367164-- ------ a2aeed88- 2o1Tc0pCKdVwFCLk: 1424367164 Content- Type: image/ jpeg; name= "=?UTF-8?B?aW1hZ2UtMDA0ZTE3YjU1ODk1M2Q0NjE0MTQ3MTJhZWVlY2JiZWQ5NTUzNmEw?= =?UTF-8?B?MTZkNjMzMTI5NDE5MTNkZTZjOWJlMDM0YS1WLmpwZw==?=" Content- Disposition: attachment Content- Transfer- Encoding: base64 / 9j/ 4AAQSkZJRgABAQAAAQABAAD/ 2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/ 2wBDAQEBAQEBAQEBAQEBAQEBAQEBAQEB AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/ wAARCAMgAeADASIA AhEBAxEB/ 8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/ 8QAtRAAAgEDAwIEAwUFBAQA AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3 ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+ Tl5ufo6erx8vP09fb3+ Pn6/ 8QAHwEA AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/ 8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElK U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3 uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+ Pn6/ 9oADAMBAAIRAxEAPwD/ AD/ 6 KKKACivsv9hL9lbT/ wBsf453Pwf1Lxfd+ C4V8BeLvFMGuWWnQalKmoaOlha6ZBNZzzQrNZvf6lbT X6JNDPJZRXEFtcQ3Ekdwt39qv9gH9o39kXUppvHnhg+ IfAzu39m/ E7wfHd6p4QuI/ OaGOPVZPs0d 54YvmPlf6FrtvarK0qrp9zeIrS0AfE9FFFABRRX7Wf8ABN/ wN8PZvhPrvjMaTpOp+ NLnxVqWjatq N3bQXWoaZptpaabNp+ l2wnEpsrW4S4e/ leBYmvZZdlxJMtnbqmGIrrD0nUcXK0oxSWl2+ fdvZWg3 ez1aVm1Jr5LjXiyjwXkNXO62CrY/ kxGHwtLDUqioqdWvKaUqteVOqqFKMacm5+ zqN1HTpKLlPmPx Tor7/ wD+ Cifg7wH4T+ MWhTeELHTtJ1PxD4XGr+ K9L0uKO3t/ 7QOq31vaatLawkQ213qtvA32l ... Yy6pgKdHD0KtO3tcVg8RKrOdSX2f qcYxiou/ tJNyXIub/ 9k= ------ a2aeed88- 2o1Tc0pCKdVwFCLk: 1424367164 --
PS. Забыл сказать, что pop3 протокол не подходит, так как не дает возможности отмечать письмо прочтенным, а фиксировать прочтение в БД как то не красиво что ли... т.к. сейчас пользователь прочитал письмо через web, а потом через imap клиентом зацепился (например с телефона)...(Отредактировано автором: 19 Февраля, 2015 - 22:13:06)
aman1792
Отправлено: 08 Июня, 2015 - 15:22:25
Новичок
Покинул форум
Сообщений всего: 1
Дата рег-ции: Июнь 2015
Помог: 0 раз(а)
Идеальная статья =) спасибо soulner
чуть добавлю своего =)) если не против вариант обработчика если кому интересно
PHP:
скопировать код в буфер обмена
if ( ( $att_type == 'vnd.ms-excel' ) || ( $att_type == 'VND.OPENXMLFORMATS-OFFICEDOCUMENT.SPREADSHEETML.SHEET' ) ) {
$file_name = iconv ( 'UTF-8' , 'cp1251//ignore' , $file_name ) ; // требуется для нормальной кодировки файла (если он на русском) $path = 'D://xampp//tmp//test//' . $file_name ;
$fp = fopen ( $path , 'w+' ) ;
И русскую буковки нормально воспринимает =)) если есть у кого с zip ариховами обработчик буду очень рад увидеть ваш вариант реализации , по скок у меня получается получить его из вложения , но приходится его сохранить во временную директорию там распаковать и потом приходится удалить, есть варианты на лету это делать?(Отредактировано автором: 08 Июня, 2015 - 15:23:03)
Поиск в теме | Версия для печати
Страниц (2): « 1 [2]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
Powered by ExBB FM 1.0 RC1. InvisionExBB