


PHP reads eml instances, php parses eml, and eml is parsed into web pages_PHP tutorial
php reads eml instances, php parses eml, and eml is parsed into web pages
php reads eml instance. This instance can parse the exported eml file into text and save the attachment to the server. Without further ado, I’ll just post the code.
If you think this code is good, please give it a like. Thank you~~~~
<!--?php // Author: richard e42083458@163.com // gets parameters error_reporting(E_ALL ^ (E_WARNING|E_NOTICE)); header(Content-type: text/html; charset=utf-8); echo <pre class="code">; define(EML_FILE_PATH,'./yjdata/'); //if ($filename == '') $filename = '21724696_niuyufu@qiaodazhao.com_ZC4422-r7GMz_R9QF3K6XUhmJOXd4c.eml'; //if ($filename == '') $filename = '21724696_niuyufu@qiaodazhao.com_ZC3218-dGquMgm7ytdF6HQgpSReC4c.eml'; //if ($filename == '') $filename = '163.eml'; //if ($filename == '') $filename = '166.eml'; //if ($filename == '') $filename = 'nyf.eml'; //if ($filename == '') $filename = 'email_header_icon.eml'; if ($filename == '') $filename = '20141230133705.eml'; $eml_file = EML_FILE_PATH.$filename; if (!($content = fread(fopen(EML_FILE_PATH.$filename, 'rb'), filesize(EML_FILE_PATH.$filename)))) die('File not found ('.EML_FILE_PATH.$filename.')'); //标题内容 $pattern=/Subject: (.*?) /ims; preg_match($pattern,$content,$subject_results); $subject = getdecodevalue($subject_results[1]); echo 标题:.$subject; //发件人: $pattern=/From: .*?<(.*?)>/ims; preg_match($pattern,$content,$from_results); $from = $from_results[1]; echo ; echo 发件人:.$from; //收件人: $pattern=/To:(.*?):/ims; preg_match($pattern,$content,$to_results); $pattern=/<(.*?)>/ims; preg_match_all($pattern,$to_results[1],$to_results2); if(count($to_results2[1])>0){ $to = $to_results2[1]; }else{ $pattern=/To:(.*?) /ims; preg_match($pattern,$content,$to_results); $to = $to_results[1]; } echo ; echo 收件人:; print_r($to); echo ; //正文内容 $pattern = /Content-Type: multipart/alternative;.*?boundary=(.*?)/ims; preg_match($pattern,$content,$results); if($results[1]!=){ $seperator = --.$results[1]; }else{ die(boundary匹配失败); } $spcontent = explode($seperator, $content); $items = array(); $keyid = 0; $email_front_content_array = array(); foreach($spcontent as $spkey=>$item) { //匹配header编码等信息 $pattern = /Content-Type: ([^;]*?);.*?charset=(.*?) Content-Transfer-Encoding: (.*?) /ims; preg_match($pattern,$item,$item_results); if(count($item_results)==4){ $Content_code = str_replace($item_results[0],,$item); $item_results[4] = $Content_code; if(trim($item_results[3])==base64){ $item_results[5] = base64_decode($item_results[4]); } if(trim($item_results[3])==quoted-printable){ $item_results[5] = quoted_printable_decode($item_results[4]); } $item_results[5] = mb_convert_encoding($item_results[5], 'UTF-8', trim($item_results[2])); //echo $item_results[5];exit; $email_front_content_array[] = $item_results; } } foreach ($email_front_content_array as $email_front_content_each_key=>$email_front_content_each_value){ if($email_front_content_each_value[1]=='text/html'){ $content_html = $email_front_content_each_value[5]; break; }else{ $content_html = $email_front_content_each_value[5]; } } echo 内容:; echo ; echo $content_html; echo ; //附件内容 $pattern = /Content-Type: multipart/mixed;.*?boundary=(.*?)/ims; preg_match($pattern,$content,$results); if($results[1]!=){ $seperator = --.$results[1]; $spcontent = explode($seperator, $content); $items = array(); $keyid = 0; $email_attachment_content_array = array(); foreach($spcontent as $spkey=>$item) { //匹配header编码等信息 $pattern = /Content-Type: ([^;]*?);.*?name=(.*?) Content-Transfer-Encoding: (.*?) Content-Disposition: attachment;.*?filename=(.*?) /ims; preg_match($pattern,$item,$item_results); //print_r($item_results); if(count($item_results)==5){ $Content_code = str_replace($item_results[0],,$item); $item_results[5] = trim($Content_code); if(trim($item_results[3])==base64){ $item_results[6] = base64_decode($item_results[5]); } if(trim($item_results[3])==quoted-printable){ $item_results[6] = quoted_printable_decode($item_results[5]); } $item_results[7] = str_replace(,,getdecodevalue($item_results[2])); $item_results[8] = str_replace(,,getdecodevalue($item_results[4])); //保存附件内容到服务器? //符合规范的文件名时:有后缀名时。 if(strrpos($item_results[8], '.')!==false){ $ext = substr($item_results[8], strrpos($item_results[8], '.') + 1); //$filename = ./yjdata/attachment/.date(YmdHis).mt_rand(10000,99999)...trim($ext); $attachment_filename = ./yjdata/attachment/.trim(str_replace(,,getbase64code($item_results[4])))...trim($ext); mkdirs(dirname($attachment_filename)); $fp = fopen($attachment_filename, w+); if (flock($fp, LOCK_EX)) { // 进行排它型锁定 fwrite($fp, $item_results[6]); flock($fp, LOCK_UN); // 释放锁定 } else { //echo Couldn't lock the file !; } fclose($fp); $item_results[9] = $attachment_filename; $email_attachment_content_array[] = $item_results; } } } //print_r($email_attachment_content_array); } if(count($email_attachment_content_array)>0){ echo 附件:; echo ; //附件读取 foreach($email_attachment_content_array as $email_attachment_content_each_key=>$email_attachment_content_each_value){ unset($email_attachment_content_each_value[5]); unset($email_attachment_content_each_value[6]); print_r($email_attachment_content_each_value[8]); print_r($email_attachment_content_each_value[9]); } } function getbase64code($content){ $pattern=/=?GB2312?B?(.*?)?=|=?GBK?B?(.*?)?=|=?UTF-8?B?(.*?)?=/ims; preg_match($pattern,$content,$subject_results); if($subject_results[1]!=){ $subject = $subject_results[1]; $charset = GB2312; } elseif($subject_results[2]!=){ $subject = $subject_results[2]; $charset = GBK; } elseif($subject_results[3]!=){ $subject = $subject_results[3]; $charset = UTF-8; }else{ $subject = $content; $charset = ; } return $subject; } function getdecodevalue($content){ $pattern=/=?GB2312?B?(.*?)?=|=?GBK?B?(.*?)?=|=?UTF-8?B?(.*?)?=/ims; preg_match($pattern,$content,$subject_results); if($subject_results[1]!=){ $subject = base64_decode($subject_results[1]); $charset = GB2312; } elseif($subject_results[2]!=){ $subject = base64_decode($subject_results[2]); $charset = GBK; } elseif($subject_results[3]!=){ $subject = base64_decode($subject_results[3]); $charset = UTF-8; }else{ $subject = $content; $charset = ; } if($charset!=){ $subject = mb_convert_encoding($subject, 'UTF-8', $charset); } return $subject; } function mkdirs($dir) { if(!is_dir($dir)) { if(!mkdirs(dirname($dir))){ return false; } if(!mkdir($dir,0777)){ return false; } } chmod($dir, 777); //给目录操作权限 return true; } ?>
There are pictures and the truth:

Thedifferencebetweenunset()andsession_destroy()isthatunset()clearsspecificsessionvariableswhilekeepingthesessionactive,whereassession_destroy()terminatestheentiresession.1)Useunset()toremovespecificsessionvariableswithoutaffectingthesession'soveralls

Stickysessionsensureuserrequestsareroutedtothesameserverforsessiondataconsistency.1)SessionIdentificationassignsuserstoserversusingcookiesorURLmodifications.2)ConsistentRoutingdirectssubsequentrequeststothesameserver.3)LoadBalancingdistributesnewuser

PHPoffersvarioussessionsavehandlers:1)Files:Default,simplebutmaybottleneckonhigh-trafficsites.2)Memcached:High-performance,idealforspeed-criticalapplications.3)Redis:SimilartoMemcached,withaddedpersistence.4)Databases:Offerscontrol,usefulforintegrati

Session in PHP is a mechanism for saving user data on the server side to maintain state between multiple requests. Specifically, 1) the session is started by the session_start() function, and data is stored and read through the $_SESSION super global array; 2) the session data is stored in the server's temporary files by default, but can be optimized through database or memory storage; 3) the session can be used to realize user login status tracking and shopping cart management functions; 4) Pay attention to the secure transmission and performance optimization of the session to ensure the security and efficiency of the application.

PHPsessionsstartwithsession_start(),whichgeneratesauniqueIDandcreatesaserverfile;theypersistacrossrequestsandcanbemanuallyendedwithsession_destroy().1)Sessionsbeginwhensession_start()iscalled,creatingauniqueIDandserverfile.2)Theycontinueasdataisloade

Absolute session timeout starts at the time of session creation, while an idle session timeout starts at the time of user's no operation. Absolute session timeout is suitable for scenarios where strict control of the session life cycle is required, such as financial applications; idle session timeout is suitable for applications that want users to keep their session active for a long time, such as social media.

The server session failure can be solved through the following steps: 1. Check the server configuration to ensure that the session is set correctly. 2. Verify client cookies, confirm that the browser supports it and send it correctly. 3. Check session storage services, such as Redis, to ensure that they are running normally. 4. Review the application code to ensure the correct session logic. Through these steps, conversation problems can be effectively diagnosed and repaired and user experience can be improved.

session_start()iscrucialinPHPformanagingusersessions.1)Itinitiatesanewsessionifnoneexists,2)resumesanexistingsession,and3)setsasessioncookieforcontinuityacrossrequests,enablingapplicationslikeuserauthenticationandpersonalizedcontent.


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

PhpStorm Mac version
The latest (2018.2.1) professional PHP integrated development tool

Dreamweaver CS6
Visual web development tools

Dreamweaver Mac version
Visual web development tools

VSCode Windows 64-bit Download
A free and powerful IDE editor launched by Microsoft

Atom editor mac version download
The most popular open source editor
