Definition at line 282 of file EUrl.class.php.
Public Member Functions | |
EUrl () | |
Constructor. | |
GetValues ($Params=NULL) | |
Get the merged variable list. | |
SetValue ($VarName, $Value) | |
Set a default or setting value. | |
Generate ($Extra=NULL) | |
Build a URL! The heart of gold for this class. | |
Private Member Functions | |
_KeyNames () | |
Get a list of the constants allowed as keys. | |
_ScopeOrder () | |
Get a list of scopes to take into account in order. Note that FIRST value wins, so the list is in an order of decreasing importance. | |
_ConstantToKey () | |
Get a list of constant names and their appropriate keys. | |
_EnvironmentToKey () | |
Get a list of environment variable names and their appropriate keys. | |
& | _Internal () |
Get internal default values for each variable. | |
& | _Mining () |
Get values extracted from PHP variables (this should only need to be run once). | |
& | _Environment () |
Get values stored in the environment named EURL_VAR_* (this should only need to be run once). | |
& | _Constants () |
Get values stored in the constants EURL_VAL_* (this will be run each time because you may decide to define MORE constants). | |
& | _Defaults () |
Get a reference to a static variable for storing defaults. | |
& | _Global () |
Get values stored in the $GLOBALS[EURL_VAR_*] by REFERENCE. | |
Private Attributes | |
$_Settings | |
Store anything sent to EUrl->SetValue(EURL_VAR_*,*). |
|
Constructor.
Definition at line 453 of file EUrl.class.php. References _KeyNames(). 00454 { 00455 /*NODEBUG{*/ 00456 if(EURL_DEBUG_EURL) 00457 { 00458 print(__CLASS__."::".__FUNCTION__."("); 00459 foreach(func_get_args() as $arg) 00460 { 00461 print(var_export($arg,TRUE).","); 00462 } 00463 print(")\n"); 00464 } 00465 /*}NODEBUG*/ 00466 00467 $this->_Settings = array(); 00468 foreach(EUrl::_KeyNames() as $key) 00469 { 00470 $this->_Settings[$key] = NULL; 00471 } 00472 }
|
Here is the call graph for this function:
|
Get values stored in the constants EURL_VAL_* (this will be run each time because you may decide to define MORE constants).
Definition at line 761 of file EUrl.class.php. References _ConstantToKey(). Referenced by GetValues(). 00762 { 00763 /*NODEBUG{*/ 00764 if(EURL_DEBUG_CONSTANTS) 00765 { 00766 print(__CLASS__."::".__FUNCTION__."("); 00767 foreach(func_get_args() as $arg) 00768 { 00769 print(var_export($arg,TRUE).","); 00770 } 00771 print(")\n"); 00772 } 00773 /*}NODEBUG*/ 00774 00775 static $defined = array(); 00776 00777 // For each allowable constant 00778 foreach(EUrl::_ConstantToKey() as $val_key => $key) 00779 { 00780 // If the current value is NULL 00781 if(!isset($defined[$key])) 00782 { 00783 // And we have a new value... 00784 if(defined($val_key)) 00785 { 00786 /*NODEBUG{*/ 00787 if(EURL_DEBUG_CONSTANTS) 00788 { 00789 print(__CLASS__."::".__FUNCTION__."(): "); 00790 print("$key found in constant\n"); 00791 } 00792 /*}NODEBUG*/ 00793 00794 $defined[$key] = constant($val_key); 00795 } 00796 else 00797 { 00798 $defined[$key] = NULL; 00799 } 00800 } 00801 } 00802 00803 return($defined); 00804 }
|
Here is the call graph for this function:
|
Get a list of constant names and their appropriate keys.
Definition at line 378 of file EUrl.class.php. Referenced by _Constants(). 00379 { 00380 /*NODEBUG{*/ 00381 if(EURL_DEBUG_CONSTANTTOKEY) 00382 { 00383 print(__CLASS__."::".__FUNCTION__."("); 00384 foreach(func_get_args() as $arg) 00385 { 00386 print(var_export($arg,TRUE).","); 00387 } 00388 print(")\n"); 00389 } 00390 /*}NODEBUG*/ 00391 00392 return(array( 00393 "EURL_VAL_PROTOCOL" => EURL_VAR_PROTOCOL , 00394 "EURL_VAL_USER" => EURL_VAR_USER , 00395 "EURL_VAL_PASS" => EURL_VAR_PASS , 00396 "EURL_VAL_DOMAIN" => EURL_VAR_DOMAIN , 00397 "EURL_VAL_SUB_DOMAIN" => EURL_VAR_SUB_DOMAIN , 00398 "EURL_VAL_PORT" => EURL_VAR_PORT , 00399 "EURL_VAL_INDEX_PATH" => EURL_VAR_INDEX_PATH , 00400 "EURL_VAL_PATH_WITH_KEYS" => EURL_VAR_PATH_WITH_KEYS , 00401 "EURL_VAL_FILE_NAME" => EURL_VAR_FILE_NAME , 00402 "EURL_VAL_FRAGMENT" => EURL_VAR_FRAGMENT , 00403 )); 00404 }
|
|
Get a reference to a static variable for storing defaults.
Definition at line 816 of file EUrl.class.php. References _KeyNames(). Referenced by GetValues(), and SetValue(). 00817 { 00818 /*NODEBUG{*/ 00819 if(EURL_DEBUG_DEFAULTS) 00820 { 00821 print(__CLASS__."::".__FUNCTION__."("); 00822 foreach(func_get_args() as $arg) 00823 { 00824 print(var_export($arg,TRUE).","); 00825 } 00826 print(")\n"); 00827 } 00828 /*}NODEBUG*/ 00829 00830 static $internal = NULL; 00831 00832 if(NULL === $internal) 00833 { 00834 /*NODEBUG{*/ 00835 if(EURL_DEBUG_DEFAULTS) 00836 { 00837 print(__CLASS__."::".__FUNCTION__."(): "); 00838 print("Initializing static defaults\n"); 00839 } 00840 /*}NODEBUG*/ 00841 00842 $internal = array(); 00843 foreach(EUrl::_KeyNames() as $key) 00844 { 00845 $internal[$key] = NULL; 00846 } 00847 } 00848 00849 return($internal); 00850 }
|
Here is the call graph for this function:
|
Get values stored in the environment named EURL_VAR_* (this should only need to be run once).
Definition at line 693 of file EUrl.class.php. References _EnvironmentToKey(). Referenced by GetValues(). 00694 { 00695 /*NODEBUG{*/ 00696 if(EURL_DEBUG_ENVIRONMENT) 00697 { 00698 print(__CLASS__."::".__FUNCTION__."("); 00699 foreach(func_get_args() as $arg) 00700 { 00701 print(var_export($arg,TRUE).","); 00702 } 00703 print(")\n"); 00704 } 00705 /*}NODEBUG*/ 00706 00707 static $return = NULL; 00708 00709 if(NULL === $return) 00710 { 00711 foreach(EUrl::_EnvironmentToKey() as $env_key => $key) 00712 { 00713 if(isset($_ENV[$env_key])) 00714 { 00715 /*NODEBUG{*/ 00716 if(EURL_DEBUG_ENVIRONMENT) 00717 { 00718 print(__CLASS__."::".__FUNCTION__."(): "); 00719 print("$key found in environment\n"); 00720 } 00721 /*}NODEBUG*/ 00722 00723 $return[$key] =& $_ENV[$env_key]; 00724 } 00725 elseif(isset($_SERVER[$env_key])) 00726 { 00727 /*NODEBUG{*/ 00728 if(EURL_DEBUG_ENVIRONMENT) 00729 { 00730 print(__CLASS__."::".__FUNCTION__."(): "); 00731 print("$key found in server vars\n"); 00732 } 00733 /*}NODEBUG*/ 00734 00735 $return[$key] =& $_SERVER[$env_key]; 00736 } 00737 else 00738 { 00739 $return[$key] = NULL; 00740 } 00741 } 00742 } 00743 00744 return($return); 00745 }
|
Here is the call graph for this function:
|
Get a list of environment variable names and their appropriate keys.
Definition at line 416 of file EUrl.class.php. Referenced by _Environment(). 00417 { 00418 /*NODEBUG{*/ 00419 if(EURL_DEBUG_ENVIRONMENTTOKEY) 00420 { 00421 print(__CLASS__."::".__FUNCTION__."("); 00422 foreach(func_get_args() as $arg) 00423 { 00424 print(var_export($arg,TRUE).","); 00425 } 00426 print(")\n"); 00427 } 00428 /*}NODEBUG*/ 00429 00430 return(array( 00431 "EURL_ENV_PROTOCOL" => EURL_VAR_PROTOCOL , 00432 "EURL_ENV_USER" => EURL_VAR_USER , 00433 "EURL_ENV_PASS" => EURL_VAR_PASS , 00434 "EURL_ENV_DOMAIN" => EURL_VAR_DOMAIN , 00435 "EURL_ENV_SUB_DOMAIN" => EURL_VAR_SUB_DOMAIN , 00436 "EURL_ENV_PORT" => EURL_VAR_PORT , 00437 "EURL_ENV_INDEX_PATH" => EURL_VAR_INDEX_PATH , 00438 "EURL_ENV_PATH_WITH_KEYS" => EURL_VAR_PATH_WITH_KEYS , 00439 "EURL_ENV_FILE_NAME" => EURL_VAR_FILE_NAME , 00440 "EURL_ENV_FRAGMENT" => EURL_VAR_FRAGMENT , 00441 )); 00442 }
|
|
Get values stored in the $GLOBALS[EURL_VAR_*] by REFERENCE.
Definition at line 862 of file EUrl.class.php. References _KeyNames(). Referenced by GetValues(). 00863 { 00864 /*NODEBUG{*/ 00865 if(EURL_DEBUG_GLOBAL) 00866 { 00867 print(__CLASS__."::".__FUNCTION__."("); 00868 foreach(func_get_args() as $arg) 00869 { 00870 print(var_export($arg,TRUE).","); 00871 } 00872 print(")\n"); 00873 } 00874 /*}NODEBUG*/ 00875 00876 static $global_refs = NULL; 00877 00878 if(NULL === $global_refs) 00879 { 00880 /*NODEBUG{*/ 00881 if(EURL_DEBUG_GLOBAL) 00882 { 00883 print(__CLASS__."::".__FUNCTION__."(): "); 00884 print("Referencing _GLOBALS\n"); 00885 } 00886 /*}NODEBUG*/ 00887 00888 foreach(EUrl::_KeyNames() as $key) 00889 { 00890 $global_refs[$key] =& $GLOBALS[$key]; 00891 } 00892 } 00893 00894 return($global_refs); 00895 }
|
Here is the call graph for this function:
|
Get internal default values for each variable.
Definition at line 486 of file EUrl.class.php. Referenced by GetValues(). 00487 { 00488 /*NODEBUG{*/ 00489 if(EURL_DEBUG_INTERNAL) 00490 { 00491 print(__CLASS__."::".__FUNCTION__."("); 00492 foreach(func_get_args() as $arg) 00493 { 00494 print(var_export($arg,TRUE).","); 00495 } 00496 print(")\n"); 00497 } 00498 /*}NODEBUG*/ 00499 00500 static $defaults = array( 00501 EURL_VAR_PROTOCOL => "http" , 00502 EURL_VAR_USER => NULL , 00503 EURL_VAR_PASS => NULL , 00504 EURL_VAR_DOMAIN => "localhost" , 00505 EURL_VAR_SUB_DOMAIN => NULL , 00506 EURL_VAR_PORT => NULL , 00507 EURL_VAR_INDEX_PATH => NULL , 00508 EURL_VAR_PATH_WITH_KEYS => FALSE , 00509 EURL_VAR_PATH_VARS => NULL , 00510 EURL_VAR_FILE_NAME => NULL , 00511 EURL_VAR_GET_VARS => NULL , 00512 EURL_VAR_FRAGMENT => NULL , 00513 ); 00514 00515 return($defaults); 00516 }
|
|
Get a list of the constants allowed as keys.
Definition at line 302 of file EUrl.class.php. Referenced by _Defaults(), _Global(), EUrl(), Generate(), GetValues(), and SetValue(). 00303 { 00304 /*NODEBUG{*/ 00305 if(EURL_DEBUG_KEYNAMES) 00306 { 00307 print(__CLASS__."::".__FUNCTION__."("); 00308 foreach(func_get_args() as $arg) 00309 { 00310 print(var_export($arg,TRUE).","); 00311 } 00312 print(")\n"); 00313 } 00314 /*}NODEBUG*/ 00315 00316 return(array( 00317 EURL_VAR_PROTOCOL , 00318 EURL_VAR_USER , 00319 EURL_VAR_PASS , 00320 EURL_VAR_DOMAIN , 00321 EURL_VAR_SUB_DOMAIN , 00322 EURL_VAR_PORT , 00323 EURL_VAR_INDEX_PATH , 00324 EURL_VAR_PATH_WITH_KEYS , 00325 EURL_VAR_PATH_VARS , 00326 EURL_VAR_FILE_NAME , 00327 EURL_VAR_GET_VARS , 00328 EURL_VAR_FRAGMENT , 00329 )); 00330 }
|
|
Get values extracted from PHP variables (this should only need to be run once).
Definition at line 531 of file EUrl.class.php. Referenced by GetValues(). 00532 { 00533 /*NODEBUG{*/ 00534 if(EURL_DEBUG_MINING) 00535 { 00536 print(__CLASS__."::".__FUNCTION__."("); 00537 foreach(func_get_args() as $arg) 00538 { 00539 print(var_export($arg,TRUE).","); 00540 } 00541 print(")\n"); 00542 } 00543 /*}NODEBUG*/ 00544 00545 static $return = NULL; 00546 00547 if(NULL === $return) 00548 { 00549 $return = array( 00550 EURL_VAR_PROTOCOL => NULL, 00551 EURL_VAR_USER => NULL, 00552 EURL_VAR_PASS => NULL, 00553 EURL_VAR_DOMAIN => NULL, 00554 EURL_VAR_SUB_DOMAIN => NULL, 00555 EURL_VAR_PORT => NULL, 00556 EURL_VAR_INDEX_PATH => NULL, 00557 EURL_VAR_PATH_WITH_KEYS => NULL, 00558 EURL_VAR_PATH_VARS => NULL, 00559 EURL_VAR_GET_VARS => NULL, 00560 EURL_VAR_FRAGMENT => NULL, 00561 ); 00562 00563 if(isset($_SERVER)) 00564 { 00565 if(isset($_SERVER['HTTPS'])) 00566 { 00567 /*NODEBUG{*/ 00568 if(EURL_DEBUG_MINING) 00569 { 00570 print(__CLASS__."::".__FUNCTION__."(): "); 00571 print("SSL Enabled\n"); 00572 } 00573 /*}NODEBUG*/ 00574 00575 $return[EURL_VAR_PROTOCOL] = "https"; 00576 } 00577 if(isset($_SERVER['PHP_AUTH_USER'])) 00578 { 00579 /*NODEBUG{*/ 00580 if(EURL_DEBUG_MINING) 00581 { 00582 print(__CLASS__."::".__FUNCTION__."(): "); 00583 print("User found: "); 00584 print($_SERVER['PHP_AUTH_USER']); 00585 print("\n"); 00586 } 00587 /*}NODEBUG*/ 00588 00589 $return[EURL_VAR_USER] = $_SERVER['PHP_AUTH_USER']; 00590 } 00591 if(isset($_SERVER['PHP_AUTH_PW'])) 00592 { 00593 /*NODEBUG{*/ 00594 if(EURL_DEBUG_MINING) 00595 { 00596 print(__CLASS__."::".__FUNCTION__."(): "); 00597 print("Password found: "); 00598 print($_SERVER['PHP_AUTH_PW']); 00599 print("\n"); 00600 } 00601 /*}NODEBUG*/ 00602 00603 $return[EURL_VAR_PASS] = $_SERVER['PHP_AUTH_PW']; 00604 } 00605 if(isset($_SERVER['HTTP_HOST'])) 00606 { 00607 $host = $_SERVER['HTTP_HOST']; 00608 $regex = "/^(([^\.]+)\.){0,}([^\.]+\..{2,3})$/"; 00609 00610 if(preg_match($regex, $host, $match)) 00611 { 00612 $subdomain = $match[2]; 00613 $domain = $match[3]; 00614 00615 if($subdomain) 00616 { 00617 /*NODEBUG{*/ 00618 if(EURL_DEBUG_MINING) 00619 { 00620 print(__CLASS__."::".__FUNCTION__."(): "); 00621 print("Subdomain found: "); 00622 print($subdomain); 00623 print("\n"); 00624 } 00625 /*}NODEBUG*/ 00626 00627 $return[EURL_VAR_SUB_DOMAIN] = $subdomain; 00628 } 00629 00630 /*NODEBUG{*/ 00631 if(EURL_DEBUG_MINING) 00632 { 00633 print(__CLASS__."::".__FUNCTION__."(): "); 00634 print("Domain found: "); 00635 print($domain); 00636 print("\n"); 00637 } 00638 /*}NODEBUG*/ 00639 00640 $return[EURL_VAR_DOMAIN] = $domain; 00641 } 00642 } 00643 if(isset($_SERVER['SCRIPT_NAME'])) 00644 { 00645 $path = $_SERVER['SCRIPT_NAME']; 00646 $path = trim($path, "\\/"); 00647 00648 /*NODEBUG{*/ 00649 if(EURL_DEBUG_MINING) 00650 { 00651 print(__CLASS__."::".__FUNCTION__."(): "); 00652 print("Scriptname found: "); 00653 print($path); 00654 print("\n"); 00655 } 00656 /*}NODEBUG*/ 00657 00658 $return[EURL_VAR_INDEX_PATH] = $path; 00659 } 00660 if(isset($_SERVER['SERVER_PORT'])) 00661 { 00662 /*NODEBUG{*/ 00663 if(EURL_DEBUG_MINING) 00664 { 00665 print(__CLASS__."::".__FUNCTION__."(): "); 00666 print("Port number found: "); 00667 print($_SERVER['SERVER_PORT']); 00668 print("\n"); 00669 } 00670 /*}NODEBUG*/ 00671 00672 $return[EURL_VAR_PORT] = $_SERVER['SERVER_PORT']; 00673 } 00674 } 00675 } 00676 00677 return($return); 00678 }
|
|
Get a list of scopes to take into account in order. Note that FIRST value wins, so the list is in an order of decreasing importance.
Definition at line 343 of file EUrl.class.php. Referenced by GetValues(). 00344 { 00345 /*NODEBUG{*/ 00346 if(EURL_DEBUG_SCOPEORDER) 00347 { 00348 print(__CLASS__."::".__FUNCTION__."("); 00349 foreach(func_get_args() as $arg) 00350 { 00351 print(var_export($arg,TRUE).","); 00352 } 00353 print(")\n"); 00354 } 00355 /*}NODEBUG*/ 00356 00357 return(array( 00358 EURL_SCOPE_PARAMETERS , 00359 EURL_SCOPE_SETTINGS , 00360 EURL_SCOPE_GLOBAL , 00361 EURL_SCOPE_DEFAULTS , 00362 EURL_SCOPE_CONSTANTS , 00363 EURL_SCOPE_ENVIRONMENT , 00364 EURL_SCOPE_MINING , 00365 EURL_SCOPE_INTERNAL , 00366 )); 00367 }
|
|
Build a URL! The heart of gold for this class.
Definition at line 1125 of file EUrl.class.php. References _KeyNames(), and GetValues(). 01126 { 01127 /*NODEBUG{*/ 01128 if(EURL_DEBUG_GENERATE) 01129 { 01130 print(__CLASS__."::".__FUNCTION__."("); 01131 foreach(func_get_args() as $arg) 01132 { 01133 print(var_export($arg,TRUE).","); 01134 } 01135 print(")\n"); 01136 } 01137 /*}NODEBUG*/ 01138 01139 // Check input 01140 $KeyNames = EUrl::_KeyNames(); 01141 if(is_array($Extra)) 01142 { 01143 foreach($Extra as $Key => $Value) 01144 { 01145 // Check key name 01146 if(!in_array($Key, $KeyNames)) 01147 { 01148 /*NODEBUG{*/ 01149 if(EURL_DEBUG_GENERATE) 01150 { 01151 print(__CLASS__."::".__FUNCTION__."(): "); 01152 print("Unknown variable $Key\n"); 01153 } 01154 /*}NODEBUG*/ 01155 01156 trigger_error( 01157 "Unknown EURL_VAR_*: " 01158 . var_export($Key, TRUE) 01159 , E_USER_ERROR 01160 ); 01161 } 01162 } 01163 } 01164 elseif(NULL !== $Extra) 01165 { 01166 /*NODEBUG{*/ 01167 if(EURL_DEBUG_GENERATE) 01168 { 01169 print(__CLASS__."::".__FUNCTION__."(): "); 01170 print("Unexpected parameter: "); 01171 print(var_export($Extra, TRUE)); 01172 print("\n"); 01173 } 01174 /*}NODEBUG*/ 01175 01176 // Error on invalid input 01177 trigger_error( 01178 "Extra must be NULL or Array: " 01179 . var_export($Extra, TRUE) 01180 , E_USER_ERROR 01181 ); 01182 } 01183 01184 // Depending on scope... 01185 if(isset($this)) 01186 { 01187 /*NODEBUG{*/ 01188 if(EURL_DEBUG_GENERATE) 01189 { 01190 print(__CLASS__."::".__FUNCTION__."(): "); 01191 print("Calling from instantiated object\n"); 01192 } 01193 /*}NODEBUG*/ 01194 01195 $vars = $this->GetValues($Extra); 01196 } 01197 else 01198 { 01199 /*NODEBUG{*/ 01200 if(EURL_DEBUG_GENERATE) 01201 { 01202 print(__CLASS__."::".__FUNCTION__."(): "); 01203 print("Calling statically\n"); 01204 } 01205 /*}NODEBUG*/ 01206 01207 $vars = EUrl::GetValues($Extra); 01208 } 01209 01210 // Start with an empty string 01211 $url = ""; 01212 01213 // Add protocol 01214 if(!isset($vars[EURL_VAR_PROTOCOL])) 01215 { 01216 /*NODEBUG{*/ 01217 if(EURL_DEBUG_GENERATE) 01218 { 01219 print(__CLASS__."::".__FUNCTION__."(): "); 01220 print("Protocol must be defined\n"); 01221 } 01222 /*}NODEBUG*/ 01223 01224 trigger_error( 01225 "No protocol set!" 01226 , E_USER_ERROR 01227 ); 01228 } 01229 $url .= $vars[EURL_VAR_PROTOCOL]; 01230 $url .= "://"; 01231 01232 // Add username and password 01233 if(isset($vars[EURL_VAR_USER])) 01234 { 01235 /*NODEBUG{*/ 01236 if(EURL_DEBUG_GENERATE) 01237 { 01238 print(__CLASS__."::".__FUNCTION__."(): "); 01239 print("Including user in URL\n"); 01240 } 01241 /*}NODEBUG*/ 01242 01243 $url .= rawurlencode($vars[EURL_VAR_USER]); 01244 if(isset($vars[EURL_VAR_PASS])) 01245 { 01246 /*NODEBUG{*/ 01247 if(EURL_DEBUG_GENERATE) 01248 { 01249 print(__CLASS__."::".__FUNCTION__."(): "); 01250 print("Including password in URL\n"); 01251 } 01252 /*}NODEBUG*/ 01253 01254 $url .= ':'.rawurlencode($vars[EURL_VAR_PASS]); 01255 } 01256 $url .= '@'; 01257 } 01258 01259 // Add domain name 01260 if(isset($vars[EURL_VAR_SUB_DOMAIN])) 01261 { 01262 /*NODEBUG{*/ 01263 if(EURL_DEBUG_GENERATE) 01264 { 01265 print(__CLASS__."::".__FUNCTION__."(): "); 01266 print("Including sub-domain\n"); 01267 } 01268 /*}NODEBUG*/ 01269 01270 $url .= $vars[EURL_VAR_SUB_DOMAIN]; 01271 $url .= "."; 01272 } 01273 if(!isset($vars[EURL_VAR_DOMAIN])) 01274 { 01275 /*NODEBUG{*/ 01276 if(EURL_DEBUG_GENERATE) 01277 { 01278 print(__CLASS__."::".__FUNCTION__."(): "); 01279 print("Domain must be set\n"); 01280 } 01281 /*}NODEBUG*/ 01282 01283 trigger_error( 01284 "No domain set!" 01285 , E_USER_ERROR 01286 ); 01287 } 01288 $url .= $vars[EURL_VAR_DOMAIN]; 01289 01290 // Add port 01291 if(isset($vars[EURL_VAR_PORT]) && $vars[EURL_VAR_PORT]) 01292 { 01293 /*NODEBUG{*/ 01294 if(EURL_DEBUG_GENERATE) 01295 { 01296 print(__CLASS__."::".__FUNCTION__."(): "); 01297 print("Adding port number to URL\n"); 01298 } 01299 /*}NODEBUG*/ 01300 01301 $url .= ":"; 01302 $url .= $vars[EURL_VAR_PORT]; 01303 } 01304 $url .= "/"; 01305 01306 // Add index file 01307 if(isset($vars[EURL_VAR_INDEX_PATH])) 01308 { 01309 /*NODEBUG{*/ 01310 if(EURL_DEBUG_GENERATE) 01311 { 01312 print(__CLASS__."::".__FUNCTION__."(): "); 01313 print("Adding index file path to URL\n"); 01314 } 01315 /*}NODEBUG*/ 01316 01317 $url .= $vars[EURL_VAR_INDEX_PATH]; 01318 } 01319 01320 // Add path variables data 01321 if(!isset($vars[EURL_VAR_PATH_WITH_KEYS])) 01322 { 01323 /*NODEBUG{*/ 01324 if(EURL_DEBUG_GENERATE) 01325 { 01326 print(__CLASS__."::".__FUNCTION__."(): "); 01327 print("No determination for handling PATH vars found\n"); 01328 } 01329 /*}NODEBUG*/ 01330 01331 trigger_error( 01332 "EURL_VAR_PATH_WITH_KEYS must be boolean!" 01333 , E_USER_ERROR 01334 ); 01335 } 01336 if(isset($vars[EURL_VAR_PATH_VARS])) 01337 { 01338 /*NODEBUG{*/ 01339 if(EURL_DEBUG_GENERATE) 01340 { 01341 print(__CLASS__."::".__FUNCTION__."(): "); 01342 print("Including PATH variables in URL\n"); 01343 } 01344 /*}NODEBUG*/ 01345 01346 foreach($vars[EURL_VAR_PATH_VARS] as $key=>$value) 01347 { 01348 if($vars[EURL_VAR_PATH_WITH_KEYS]) 01349 { 01350 $url .= "/"; 01351 $url .= rawurlencode($key ); 01352 } 01353 01354 $url .= "/"; 01355 $url .= rawurlencode($value); 01356 } 01357 } 01358 01359 // Add effective file name 01360 if(isset($vars[EURL_VAR_FILE_NAME])) 01361 { 01362 /*NODEBUG{*/ 01363 if(EURL_DEBUG_GENERATE) 01364 { 01365 print(__CLASS__."::".__FUNCTION__."(): "); 01366 print("Including an effective file in URL\n"); 01367 } 01368 /*}NODEBUG*/ 01369 01370 $url .= "/"; 01371 $url .= $vars[EURL_VAR_FILE_NAME]; 01372 } 01373 01374 // Add GET parameters 01375 if(isset($vars[EURL_VAR_GET_VARS]) && $vars[EURL_VAR_GET_VARS]) 01376 { 01377 /*NODEBUG{*/ 01378 if(EURL_DEBUG_GENERATE) 01379 { 01380 print(__CLASS__."::".__FUNCTION__."(): "); 01381 print("Including GET variables in URL\n"); 01382 } 01383 /*}NODEBUG*/ 01384 01385 $gets = array(); 01386 foreach($vars[EURL_VAR_GET_VARS] as $key=>$value) 01387 { 01388 $gets[] = rawurlencode($key ). 01389 '='.rawurlencode($value); 01390 } 01391 $url .= "?"; 01392 $url .= join("&",$gets); 01393 } 01394 01395 // Add Fragment 01396 if(isset($vars[EURL_VAR_FRAGMENT]) && $vars[EURL_VAR_FRAGMENT]) 01397 { 01398 /*NODEBUG{*/ 01399 if(EURL_DEBUG_GENERATE) 01400 { 01401 print(__CLASS__."::".__FUNCTION__."(): "); 01402 print("Including FRAGMENT in URL\n"); 01403 } 01404 /*}NODEBUG*/ 01405 01406 $url .= "#"; 01407 $url .= $vars[EURL_VAR_FRAGMENT]; 01408 } 01409 01410 /*NODEBUG{*/ 01411 if(EURL_DEBUG_GENERATE) 01412 { 01413 print(__CLASS__."::".__FUNCTION__."(): "); 01414 print("$url\n"); 01415 } 01416 /*}NODEBUG*/ 01417 01418 return($url); 01419 }
|
Here is the call graph for this function:
|
Get the merged variable list.
Definition at line 909 of file EUrl.class.php. References _Constants(), _Defaults(), _Environment(), _Global(), _Internal(), _KeyNames(), _Mining(), and _ScopeOrder(). Referenced by Generate(). 00910 { 00911 /*NODEBUG{*/ 00912 if(EURL_DEBUG_GETVALUES) 00913 { 00914 print(__CLASS__."::".__FUNCTION__."("); 00915 foreach(func_get_args() as $arg) 00916 { 00917 print(var_export($arg,TRUE).","); 00918 } 00919 print(")\n"); 00920 } 00921 /*}NODEBUG*/ 00922 00923 static $empty = array(); 00924 static $static_vars = NULL; 00925 00926 // The static bits which don't change, IE: Internal defaults, 00927 // data mined from PHP, etc. 00928 if(NULL === $static_vars) 00929 { 00930 /*NODEBUG{*/ 00931 if(EURL_DEBUG_GETVALUES) 00932 { 00933 print(__CLASS__."::".__FUNCTION__."(): "); 00934 print("Initializing completely static returns\n"); 00935 } 00936 /*}NODEBUG*/ 00937 00938 $static_vars = array(); 00939 $static_vars[EURL_SCOPE_INTERNAL ] =& EUrl::_Internal(); 00940 $static_vars[EURL_SCOPE_CONSTANTS ] =& EUrl::_Constants(); 00941 $static_vars[EURL_SCOPE_MINING ] =& EUrl::_Mining(); 00942 $static_vars[EURL_SCOPE_ENVIRONMENT] =& EUrl::_Environment(); 00943 $static_vars[EURL_SCOPE_DEFAULTS ] =& EUrl::_Defaults(); 00944 $static_vars[EURL_SCOPE_GLOBAL ] =& EUrl::_Global(); 00945 } 00946 00947 // Now copy all our static variables and referenced variables in 00948 $vars = array(); 00949 00950 // We rerun this each time because you may have defined MORE 00951 // constants since the last time we did this. 00952 EUrl::_Constants(); 00953 00954 // If we're locally instantiated, we'll have settings to grab 00955 // as well 00956 if(isset($this)) 00957 { 00958 /*NODEBUG{*/ 00959 if(EURL_DEBUG_GETVALUES) 00960 { 00961 print(__CLASS__."::".__FUNCTION__."(): "); 00962 print("Getting instantiated settings, too\n"); 00963 } 00964 /*}NODEBUG*/ 00965 00966 $vars[EURL_SCOPE_SETTINGS] =& $this->_Settings; 00967 } 00968 00969 // If they've passed parameters to the Generate function, we 00970 // want to include them here... 00971 if(NULL !== $Params) 00972 { 00973 /*NODEBUG{*/ 00974 if(EURL_DEBUG_GETVALUES) 00975 { 00976 print(__CLASS__."::".__FUNCTION__."(): "); 00977 print("Including parameters in parse\n"); 00978 } 00979 /*}NODEBUG*/ 00980 00981 $vars[EURL_SCOPE_PARAMETERS] =& $Params; 00982 } 00983 00984 // For each scope 00985 $return = array(); 00986 $scopeorder = EUrl::_ScopeOrder(); 00987 $keynames = EUrl::_KeyNames(); 00988 foreach($scopeorder as $scope) 00989 { 00990 $scoped =& $empty; 00991 00992 if(isset($static_vars[$scope])) 00993 { 00994 $scoped =& $static_vars[$scope]; 00995 } 00996 00997 if(isset($vars[$scope])) 00998 { 00999 $scoped =& $vars[$scope]; 01000 } 01001 01002 foreach($keynames as $key) 01003 { 01004 if(!isset($return[$key]) && isset($scoped[$key])) 01005 { 01006 /*NODEBUG{*/ 01007 if(EURL_DEBUG_GETVALUES) 01008 { 01009 print(__CLASS__."::".__FUNCTION__."(): "); 01010 print("$key from $scope\n"); 01011 } 01012 /*}NODEBUG*/ 01013 01014 $return[$key] = $scoped[$key]; 01015 } 01016 } 01017 } 01018 01019 return($return); 01020 }
|
Here is the call graph for this function:
|
Set a default or setting value.
// If you wish to set a default, call this function statically: EUrl::SetValue( EURL_VAR_DOMAIN , "MyDomain.com" ); // If you wish to set a locally instantiated value: $ExternalLink = new EUrl(); $ExternalLink->SetValue( EURL_VAR_DOMAIN , "SomeoneElse.com" );
Definition at line 1049 of file EUrl.class.php. References _Defaults(), and _KeyNames(). 01050 { 01051 /*NODEBUG{*/ 01052 if(EURL_DEBUG_SETVALUE) 01053 { 01054 print(__CLASS__."::".__FUNCTION__."("); 01055 foreach(func_get_args() as $arg) 01056 { 01057 print(var_export($arg,TRUE).","); 01058 } 01059 print(")\n"); 01060 } 01061 /*}NODEBUG*/ 01062 01063 // Check key name 01064 if(!in_array($VarName, EUrl::_KeyNames())) 01065 { 01066 /*NODEBUG{*/ 01067 if(EURL_DEBUG_SETVALUE) 01068 { 01069 print(__CLASS__."::".__FUNCTION__."(): "); 01070 print("Unknown variable $VarName\n"); 01071 } 01072 /*}NODEBUG*/ 01073 01074 trigger_error( 01075 "Unknown EURL_VAR_*: " 01076 . var_export($VarName, TRUE) 01077 , E_USER_ERROR 01078 ); 01079 } 01080 01081 // Check scope to put it in 01082 if(isset($this)) 01083 { 01084 /*NODEBUG{*/ 01085 if(EURL_DEBUG_SETVALUE) 01086 { 01087 print(__CLASS__."::".__FUNCTION__."(): "); 01088 print("Storing $VarName in instantiated object\n"); 01089 } 01090 /*}NODEBUG*/ 01091 01092 $array =& $this->_Settings; 01093 } 01094 else 01095 { 01096 /*NODEBUG{*/ 01097 if(EURL_DEBUG_SETVALUE) 01098 { 01099 print(__CLASS__."::".__FUNCTION__."(): "); 01100 print("Storing $VarName in static defaults\n"); 01101 } 01102 /*}NODEBUG*/ 01103 01104 $array =& EUrl::_Defaults(); 01105 } 01106 01107 // Store value 01108 $array[$VarName] = $Value; 01109 01110 // Return null 01111 return(NULL); 01112 }
|
Here is the call graph for this function:
|
Store anything sent to EUrl->SetValue(EURL_VAR_*,*).
Definition at line 291 of file EUrl.class.php. |