Heim  >  Artikel  >  Backend-Entwicklung  >  PHP 异常与错误 笔记与总结(18 )页面重定向实现

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

WBOY
WBOYOriginal
2016-06-13 12:22:35965Durchsuche

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 页面:

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn