ホームページ  >  記事  >  バックエンド開発  >  PHPExcel で有効な open_basedir 制限の解決策

PHPExcel で有効な open_basedir 制限の解決策

WBOY
WBOYオリジナル
2016-06-13 12:29:051181ブラウズ

PHPExcel での open_basedir 制限への解決策

PHPExcel を使用して execl をエクスポートする場合、ローカルでは問題がないことがわかりましたが、Web サイトをレンタルサーバーに転送するとエラーが報告されました。詳細は次のとおりです。

Warning: realpath() [function.realpath]: open_basedir restriction <span style="color: #0000ff;">in</span> effect. File(/tmp) <span style="color: #0000ff;">is</span> not within the allowed path(s): (/data/home:/usr/home:/data/home/tmp:/usr/home/tmp:/<span style="color: #0000ff;">var</span>/www/disablesite) <span style="color: #0000ff;">in</span> /data/home/【服务器名称】/htdocs/【项目地址】/Classes/PHPExcel/Shared/File.php on line <span style="color: #800080;">136</span><span style="color: #000000;">        找到对应的File.php的136行,只是sys_get_temp_dir方法的最后一行,查阅网上的方法直接把该方法给替换掉就好了。  </span>

コードは次のとおりです:

<span style="color: #0000ff;">public static function sys_get_temp_dir()<br>{<br>if</span> (ini_get(<span style="color: #800000;">'</span><span style="color: #800000;">upload_tmp_dir</span><span style="color: #800000;">'</span>)!==<span style="color: #0000ff;">false</span><span style="color: #000000;">)           {              </span><span style="color: #0000ff;">if</span>($temp = ini_get(<span style="color: #800000;">'</span><span style="color: #800000;">upload_tmp_dir</span><span style="color: #800000;">'</span><span style="color: #000000;">))                 {                     </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> (file_exists($temp))                      {                        </span><span style="color: #0000ff;">return</span><span style="color: #000000;"> realpath($temp);                      }              }           }           </span><span style="color: #0000ff;">if</span> ( !function_exists(<span style="color: #800000;">'</span><span style="color: #800000;">sys_get_temp_dir</span><span style="color: #800000;">'</span><span style="color: #000000;">))          {               </span><span style="color: #0000ff;">if</span> ($temp = getenv(<span style="color: #800000;">'</span><span style="color: #800000;">TMP</span><span style="color: #800000;">'</span><span style="color: #000000;">))                  {                  </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> (file_exists($temp))                   {                        </span><span style="color: #0000ff;">return</span><span style="color: #000000;"> realpath($temp);                  }                  </span><span style="color: #0000ff;">if</span> (($temp!=<span style="color: #800000;">''</span>) &&<span style="color: #000000;"> file_exists($temp))                  {                      </span><span style="color: #0000ff;">return</span><span style="color: #000000;"> realpath($temp);                   }               }               </span><span style="color: #0000ff;">if</span> ($temp = getenv(<span style="color: #800000;">'</span><span style="color: #800000;">TEMP</span><span style="color: #800000;">'</span><span style="color: #000000;">))                 {                  </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> (file_exists($temp))                   {                  </span><span style="color: #0000ff;">return</span><span style="color: #000000;"> realpath($temp);                  }                }        }   <br>}</span>

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。