<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>https://jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>https://jackxiang.com/post//</link>
<title><![CDATA[[实践OK]在PHP文件里打开php报错的方法，打开错误报告，PHP里的PHP.ini里打开全局错误报告display_errors = On， 新版本的php 降低错误级别。]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[WEB2.0]]></category>
<pubDate>Sun, 31 Jan 2010 09:49:29 +0000</pubDate> 
<guid>https://jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	新版本的php 降低错误级别：<br/>配置php.ini<br/>打开php.ini，把display_errors = Off 改成 display_errors = On<br/>然后找到 error_reporting 最好设置成<br/>error_reporting = E_ALL &amp; ~E_DEPRECATED &amp; ~E_NOTICE<br/>然后保存，重启apache<br/>service php-fpm restart<br/>Gracefully shutting down php-fpm . done<br/><br/>写到日志里面去的配置：<br/>log_errors = On<br/>error_log = /data/logs/php/php-cli-error.log<br/><br/>光是：Error_reporting(E_ALL);还不行，还得：ini_set(&#039;display_errors&#039;,&#039;On&#039;);<br/><div class="code">error_reporting(E_ALL ^ E_NOTICE);ini_set(&#039;display_errors&#039;,&#039;On&#039;);</div><br/><br/><br/><textarea name="code" class="php" rows="15" cols="100">
ini_set(&#039;display_errors&#039;,&#039;On&#039;);
Error_reporting(E_ALL);
</textarea><br/><br/>例子：<br/><textarea name="code" class="php" rows="15" cols="100">
&nbsp;&nbsp;&nbsp;&nbsp;&#125;else if(isset($_GET[&#039;f&#039;])&amp;&amp;!empty($_GET[&#039;f&#039;]))&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$filename = $_GET[&quot;f&quot;]; // 获取文件名
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$downfile = basename($filename);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$downfile_info = explode(&#039;.&#039;, $downfile);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$fileext = $downfile_info[count($downfile_info)-1];
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if($fileext == &quot;pdf&quot;)&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;header(&#039;Content-type: application/&#039;.$fileext);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;else if($fileext == &quot;php&quot;)&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ini_set(&#039;display_errors&#039;,&#039;On&#039;);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Error_reporting(E_ALL);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ob_start();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; readfile(&quot;/tmp/&quot;.$filename);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $img = ob_get_contents();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ob_end_clean();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //$size = strlen($img);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //header( &quot;content-type:&nbsp;&nbsp; application/octet-stream &quot;);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //header( &quot;accept-ranges:&nbsp;&nbsp; bytes &quot;);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //header( &quot;accept-length: &quot; .filesize($filename));
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //header( &quot;content-disposition:&nbsp;&nbsp; attachment;&nbsp;&nbsp; filename= &#123;$filename&#125;&quot;);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo &quot;jackX&quot;;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo $filename;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; readfile(&quot;/tmp/&quot;.$filename);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo $img;die;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;
</textarea><br/>提示：<br/>Warning: readfile(/tmp/up.php): failed to open stream: No such file or directory in /data/www/XXXX/up.php on line 54<br/><br/>于是整理好后：<br/><textarea name="code" class="php" rows="15" cols="100">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;else if($fileext == &quot;php&quot;)&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ob_start();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; readfile(&quot;tmp/&quot;.$filename);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $img = ob_get_contents();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ob_end_clean();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $size = strlen($img);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; header( &quot;content-type:&nbsp;&nbsp; application/octet-stream &quot;);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; header( &quot;accept-ranges:&nbsp;&nbsp; bytes &quot;);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; header( &quot;accept-length: &quot; .filesize($filename));
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; header( &quot;content-disposition:&nbsp;&nbsp; attachment;&nbsp;&nbsp; filename= &#123;$filename&#125;&quot;);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo $img;die;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;
</textarea><br/><br/>下面是一个哥们写的博客:http://blog.linuxphp.org/archives/221/<br/>php错误日志，适合异步调试和线上调试<br/>ini_set(&quot;error_reporting&quot;,E_ALL ^ E_NOTICE);<br/>ini_set(&quot;display_errors&quot;,off);<br/>ini_set(&quot;log_errors&quot;,On);<br/>ini_set(&quot;error_log&quot;,&quot;d:/c&quot;);<br/>------------------附加两句解决错误的语句----------------------<br/>@ini_set(&#039;memory_limit&#039;,&#039;500M&#039;);<br/>@ini_set(&#039;max_execution_time&#039;, &#039;180&#039;);<br/><br/>特别注意以下顺序才行，否则仍然不会报错的，哈哈：<br/><br/>如果是在linux terminal下运行，可以指定一个php.ini的配置文件，如下示例：<br/><textarea name="code" class="php" rows="15" cols="100">
php -c your_php.ini&nbsp;&nbsp;xxx.php
</textarea><br/>-c &lt;path&gt;&#124;&lt;file&gt; Look for php.ini file in this directory<br/><br/>特别注意：<br/>如果是包含关系的程序，包含好几个程序文件，如果再下级文件出现错误，而你仅仅在上级加入上面的两行，下级是不会报错的，于是还得在下级加入上面的两行才行，呵呵。真是麻烦，不过没办法，有时间线上故障，搬移线上服务，直接在线上调试的时候不得不这样，否则不会出现错误，很是郁闷，不知如何下手，有了这个麻烦事麻烦点，但是已经很好了！<br/><br/><br/>小知识：获取ini里面的变量：<br/>$_ENV[&#039;SERVER_TYPE&#039;] = ini_get(&quot;phplib.servertype&quot;);<br/><br/>-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------<br/>这个是写在PHP.ini配置文件里的是：<br/>display_errors = On<br/>vi /usr/local/stow/php-5.2.5/lib/php.ini <br/><br/><br/><br/>error_get_last 救人老命，php就是高，哈哈 ,值得在线上调试的时候使用！<br/><br/>来自：来自：http://blog.csdn.net/shaobaojie/article/details/26934809
]]>
</description>
</item><item>
<link>https://jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论] [实践OK]在PHP文件里打开php报错的方法，打开错误报告，PHP里的PHP.ini里打开全局错误报告display_errors = On， 新版本的php 降低错误级别。]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>https://jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>