note 56978 added to function.override-function

From: Date: Tue, 20 Sep 2005 19:13:09 +0000
Subject: note 56978 added to function.override-function
Groups: php.notes 
Request: Send a blank email to php-notes+get-95498@lists.php.net to get a copy of this message
Since Apache 1 & 2 use diffrent methods (Unicode vs. UTF8) on Win32 platforms to encode urls, i've implemented the following workaround to get around this "bug" (which is actually known behaviour and wont get fixed). This workaround is really usefull when writing PHP scripts which have to work on all platforms (Windows, Linux, BSD etc.), must process URLs and must work under both Apache versions. <?php $httpd = explode(' ', $_SERVER['SERVER_SOFTWARE']); if(substr($httpd[0], 0, 6)=='Apache' && substr($httpd[0], 7, 1)==2 && $httpd[1]=='(Win32)') { if(isset($_SERVER['REQUEST_URI'])) $_SERVER['REQUEST_URI'] = str_replace('%2F', '/', rawurlencode(utf8_decode(rawurldecode($_SERVER['REQUEST_URI'])))); if(isset($_SERVER['REDIRECT_URL'])) $_SERVER['REDIRECT_URL'] = str_replace('%2F', '/', rawurlencode(utf8_decode(rawurldecode($_SERVER['REDIRECT_URL'])))); override_function('urlencode', '$url', 'return str_replace("%2F", "/", rawurlencode(utf8_encode($url)));'); } ?> ---- Manual Page -- http://www.php.net/manual/en/function.override-function.php Edit -- http://master.php.net/manage/user-notes.php?action=edit+56978 Delete: added to the manual -- http://master.php.net/manage/user-notes.php?action=delete+56978&report=yes&reason=added+to+the+manual Delete: bad code -- http://master.php.net/manage/user-notes.php?action=delete+56978&report=yes&reason=bad+code Delete: spam -- http://master.php.net/manage/user-notes.php?action=delete+56978&report=yes&reason=spam Delete: useless -- http://master.php.net/manage/user-notes.php?action=delete+56978&report=yes&reason=useless Delete: non-english -- http://master.php.net/manage/user-notes.php?action=delete+56978&report=yes&reason=non-english Delete: already in docs -- http://master.php.net/manage/user-notes.php?action=delete+56978&report=yes&reason=already+in+docs Delete: other reasons -- http://master.php.net/manage/user-notes.php?action=delete+56978&report=yes Reject -- http://master.php.net/manage/user-notes.php?action=reject+56978&report=yes Search -- http://master.php.net/manage/user-notes.php

« previous php.notes (#95498) next »