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

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

WBOY
WBOYOriginal
2016-06-13 12:22:35982browse

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> }

跳转到 404 页面:

Statement:
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