PHP - Snippets: Unterschied zwischen den Versionen

Aus Wikizone
Wechseln zu: Navigation, Suche
Zeile 73: Zeile 73:
 
$_CLEAN['POST'] = clean($_POST);
 
$_CLEAN['POST'] = clean($_POST);
 
</pre>
 
</pre>
 +
 +
== PHP Pfade ermitteln ==
 +
http://stackoverflow.com/questions/4645082/get-absolute-path-of-current-script/26139609#26139609
 +
<syntaxhighlight lang="php">
 +
$_SERVER["DOCUMENT_ROOT"] === /home/user/public_html
 +
$_SERVER["SERVER_ADDR"]  === 143.34.112.23
 +
$_SERVER['HTTP_HOST']    === example.com (or with WWW)
 +
$_SERVER["REQUEST_URI"]  === /folder1/folder2/yourfile.php?var=blabla
 +
__FILE__                  === /home/user/public_html/folder1/folder2/yourfile.php
 +
basename(__FILE__)        === yourfile.php
 +
__DIR__                  === /home/user/public_html/folder1/folder2 [same: dirname(__FILE__)]
 +
$_SERVER["QUERY_STRING"]  === var=blabla
 +
 +
$_SERVER["REQUEST_URI"]  === /folder1/folder2/yourfile.php?var=blabla
 +
parse_url($_SERVER["REQUEST_URI"], PHP_URL_PATH)  === /folder1/folder2/yourfile.php
 +
$_SERVER["PHP_SELF"]      === /folder1/folder2/yourfile.php
 +
 +
//if "YOURFILE.php" is included in "PARENTFILE.php" , and "PARENTFILE.PHP?abc"  is opened:
 +
$_SERVER["PHP_SELF"]      === /parentfile.php
 +
$_SERVER["REQUEST_URI"]    === /parentfile.php?abc
 +
$_SERVER["SCRIPT_FILENAME"]=== /home/user/public_html/parentfile.php
 +
str_replace($_SERVER["DOCUMENT_ROOT"],'', str_replace('\\','/',__FILE__ ) )  === /folder1/folder2/yourfile.php
 +
</syntaxhighlight>
  
 
== IP Adresse Abfragen ==
 
== IP Adresse Abfragen ==

Version vom 15. November 2016, 17:43 Uhr

Navigation aus Unterverzeichnissen und Dateinamen erzeugen

<?php
function getNavigation($pf="./",$arrExcludeNames=array()){
	$vz = opendir($pf);
	$arrExcludeNames = array("css","js","media","readme.txt","index.php");
	$a = '';
	while ($vi = readdir($vz)) {
		if ($vi != '.' && $vi != '..' && !in_array($vi, $arrExcludeNames)) {
			$a .= '<a href="'.$pf.$vi.'">'.$vi.'</a><br>';
		}
	}
	return $a;
}
$arrExcludeNames = array("css","js","media","readme.txt","index.php");// diese sollen nicht in die Navigation
$myPath="./meinVerzeichnis/meinUnterverzeichnis/"
echo getNavigation($myPath,$arrExcludeNames);
?>


Strings

PHP - String Snippets

Marker Replacement

function replace_markers($template,$arrMarkers){
	// Platzhalter mit den Benutzereingaben ersetzen
	$sCalib_as_offered = '<p>Request for customized calibration</p>';
	$sCalib_as_datasheet = '<p>Calibration will be performed based on current specifications as stated in data sheet</p>';
	$sAdditional_service = '<h3>Only for calibration request</h3><strong>End user would like to have additional services:</strong></p>';
	$sCalib_justify = '<p>Standard calibration (ISO) with adjustment (with additional charges)</p>';
	$sFw_update = '<p>Firmware update (free of charge)</p>';
	
	if($arrMarkers[calib_type] == 'calib_as_offered') $template = str_replace( '###CALIB_TYPE###', $sCalib_as_offered, $template );
	if($arrMarkers[calib_type] == 'calib_as_datasheet') $template = str_replace( '###CALIB_TYPE###', $sCalib_as_datasheet, $template );
	
	if($arrMarkers[additional_service]) $template = str_replace( '###ADDITIONAL_SERVICE###', $sAdditional_service, $template);
	if($arrMarkers[calib_justify]) $template = str_replace( '###CALIB_JUSTIFY###', $sCalib_justify, $template );
	else $template = str_replace( '###CALIB_JUSTIFY###', '', $template );
	
	if($arrMarkers[fw_update]) $template = str_replace( '###FW_UPDATE###', $sFw_update, $template );
	else $template = str_replace( '###FW_UPDATE###', '', $template );
	
    foreach($arrMarkers as $key => $val){
    	if($val == '0')$val = '';
    	$val = iconv("UTF-8","UTF-8//IGNORE",$val);
    	$template = str_replace( '###'.strtoupper($key).'###', htmlspecialchars( $val ), $template );
    }
    
    $template = str_replace( '###FNAME1###', htmlspecialchars( $arrMarkers[fname1] ), $template );
    $template = str_replace( '###RMA_NUM###', $rma_num, $template );
    $template = str_replace( '###NACHRICHT###', htmlspecialchars( $nachricht ), $template );
	//echo $template;
	return $template;
}

Clean up POST und GET

Zusätzliche Sicherheit für Post und Get.

function clean($elem) {
	/* used to add some security to get and post vars */
	if(!is_array($elem)) 
		$elem = htmlentities($elem,ENT_QUOTES,"UTF-8"); 
    	else 
		foreach ($elem as $key => $value) 
			$elem[$key] = $this->clean($value); 
    	return $elem; 
} 

$_CLEAN['GET'] = clean($_GET); 
$_CLEAN['POST'] = clean($_POST);

PHP Pfade ermitteln

http://stackoverflow.com/questions/4645082/get-absolute-path-of-current-script/26139609#26139609

$_SERVER["DOCUMENT_ROOT"] === /home/user/public_html
$_SERVER["SERVER_ADDR"]   === 143.34.112.23
$_SERVER['HTTP_HOST']     === example.com (or with WWW)
$_SERVER["REQUEST_URI"]   === /folder1/folder2/yourfile.php?var=blabla
__FILE__                  === /home/user/public_html/folder1/folder2/yourfile.php
basename(__FILE__)        === yourfile.php
__DIR__                   === /home/user/public_html/folder1/folder2 [same: dirname(__FILE__)]
$_SERVER["QUERY_STRING"]  === var=blabla

$_SERVER["REQUEST_URI"]   === /folder1/folder2/yourfile.php?var=blabla
parse_url($_SERVER["REQUEST_URI"], PHP_URL_PATH)  === /folder1/folder2/yourfile.php 
$_SERVER["PHP_SELF"]      === /folder1/folder2/yourfile.php

//if "YOURFILE.php" is included in "PARENTFILE.php" , and "PARENTFILE.PHP?abc"   is opened:
$_SERVER["PHP_SELF"]       === /parentfile.php
$_SERVER["REQUEST_URI"]    === /parentfile.php?abc
$_SERVER["SCRIPT_FILENAME"]=== /home/user/public_html/parentfile.php
str_replace($_SERVER["DOCUMENT_ROOT"],'', str_replace('\\','/',__FILE__ ) )  === /folder1/folder2/yourfile.php

IP Adresse Abfragen

		public static function get_ip() {
			$REMOTE_ADDR = $_SERVER['REMOTE_ADDR'];
			if ( ! empty( $_SERVER['X_FORWARDED_FOR'] ) ) {
				$X_FORWARDED_FOR = explode(',', $_SERVER['X_FORWARDED_FOR'] );
				if ( ! empty( $X_FORWARDED_FOR ) ) {
					$REMOTE_ADDR = trim( $X_FORWARDED_FOR[0] );
				}
			}
			elseif ( ! empty($_SERVER['HTTP_X_FORWARDED_FOR'] ) ) {
				$HTTP_X_FORWARDED_FOR= explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
				if ( ! empty($HTTP_X_FORWARDED_FOR ) ) {
					$REMOTE_ADDR = trim($HTTP_X_FORWARDED_FOR[0]);
				}
			}
			return preg_replace('/[^0-9a-f:\., ]/si', '', $REMOTE_ADDR);
		}