Home > Backend Development > PHP Tutorial > PHP 异常与错误 笔记与总结(18 )页面重定向实现

PHP 异常与错误 笔记与总结(18 )页面重定向实现

WBOY
Release: 2016-06-13 12:22:35
Original
981 people have browsed it

PHP 错误与异常 笔记与总结(18 )页面重定向实现

在发生错误时,将用户重定向到另一个页面。

<span style="color: #008080;"> 1</span> <span style="color: #000000;">php</span><span style="color: #008080;"> 2</span> <span style="color: #008080;">header</span>('content-type:text/html; charset=utf-8'<span style="color: #000000;">);</span><span style="color: #008080;"> 3</span> <span style="color: #008080;"> 4</span> <span style="color: #0000ff;">class</span><span style="color: #000000;"> ExceptionRedirectHandler{</span><span style="color: #008080;"> 5</span> <span style="color: #008080;"> 6</span>     <span style="color: #0000ff;">protected</span> <span style="color: #800080;">$_exception</span><span style="color: #000000;">;</span><span style="color: #008080;"> 7</span>     <span style="color: #0000ff;">protected</span> <span style="color: #800080;">$redirect</span> = '404.html'<span style="color: #000000;">;</span><span style="color: #008080;"> 8</span>     <span style="color: #0000ff;">protected</span> <span style="color: #800080;">$_logFile</span> = 'D:/practise/php/Error/LogException3.log'<span style="color: #000000;">;</span><span style="color: #008080;"> 9</span> <span style="color: #008080;">10</span>     <span style="color: #008000;">//</span><span style="color: #008000;">构造函数中得到异常对象</span><span style="color: #008080;">11</span>     <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span> __construct(<span style="color: #0000ff;">Exception</span> <span style="color: #800080;">$e</span><span style="color: #000000;">){</span><span style="color: #008080;">12</span>         <span style="color: #800080;">$this</span>->_exception = <span style="color: #800080;">$e</span><span style="color: #000000;">;</span><span style="color: #008080;">13</span> <span style="color: #000000;">    }</span><span style="color: #008080;">14</span> <span style="color: #008080;">15</span>     <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">function</span> handle(<span style="color: #0000ff;">Exception</span> <span style="color: #800080;">$e</span><span style="color: #000000;">){</span><span style="color: #008080;">16</span>         <span style="color: #800080;">$self</span> = <span style="color: #0000ff;">new</span> self(<span style="color: #800080;">$e</span><span style="color: #000000;">);</span><span style="color: #008080;">17</span>         <span style="color: #800080;">$self</span>-><span style="color: #008080;">log</span><span style="color: #000000;">();</span><span style="color: #008080;">18</span>         <span style="color: #008000;">//</span><span style="color: #008000;">清除所有的输出缓冲</span><span style="color: #008080;">19</span>         <span style="color: #0000ff;">while</span>(@<span style="color: #008080;">ob_end_clean</span><span style="color: #000000;">());</span><span style="color: #008080;">20</span>         <span style="color: #008080;">header</span>('HTTP/1.1 307 Temporary Rediret'<span style="color: #000000;">);</span><span style="color: #008080;">21</span>         <span style="color: #008080;">header</span>('Cache-Control:no-cache, must-revalidate'<span style="color: #000000;">);</span><span style="color: #008080;">22</span>         <span style="color: #008080;">header</span>('Expires: Sun, 05 Jul 2015 22:36:42 GMT'<span style="color: #000000;">);</span><span style="color: #008080;">23</span>         <span style="color: #008080;">header</span>('Location:'.<span style="color: #800080;">$self</span>-><span style="color: #000000;">redirect);</span><span style="color: #008080;">24</span>         <span style="color: #0000ff;">exit</span>(1<span style="color: #000000;">);</span><span style="color: #008080;">25</span> <span style="color: #000000;">    }</span><span style="color: #008080;">26</span> <span style="color: #008080;">27</span>     <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span> <span style="color: #008080;">log</span><span style="color: #000000;">(){</span><span style="color: #008080;">28</span>         <span style="color: #008080;">error_log</span>(<span style="color: #800080;">$this</span>->_exception->getMessage().<span style="color: #ff00ff;">PHP_EOL</span>, 3, <span style="color: #800080;">$this</span>-><span style="color: #000000;">_logFile);</span><span style="color: #008080;">29</span> <span style="color: #000000;">    }</span><span style="color: #008080;">30</span> <span style="color: #000000;">}</span><span style="color: #008080;">31</span> <span style="color: #008080;">32</span> <span style="color: #008080;">set_exception_handler</span>(<span style="color: #0000ff;">array</span>('ExceptionRedirectHandler', 'handle'<span style="color: #000000;">));</span><span style="color: #008080;">33</span> <span style="color: #008080;">34</span> <span style="color: #008000;">//</span><span style="color: #008000;">测试</span><span style="color: #008080;">35</span> <span style="color: #800080;">$conn</span> = <span style="color: #008080;">mysql_connect</span>('localhost', 'root', 'root123'<span style="color: #000000;">);</span><span style="color: #008080;">36</span> <span style="color: #0000ff;">if</span>(!<span style="color: #800080;">$conn</span><span style="color: #000000;">){</span><span style="color: #008080;">37</span>     <span style="color: #0000ff;">throw</span> <span style="color: #0000ff;">new</span> <span style="color: #0000ff;">Exception</span>("数据库连接失败"<span style="color: #000000;">);</span><span style="color: #008080;">38</span>     <span style="color: #008080;">39</span> }
Copy after login

跳转到 404 页面:

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template