PHP - Scripts

From XennisWiki
Jump to: navigation, search

This article contains some PHP scripts.

Kleine Helfer

Selected

/**
 * Output "selected"
 *
 * @param	string	$first		The first of two values to compare 
 * @param	string	$second		The second argument, which gets compared to the first
 * @return	void
 */
function selected( $first, $second )
{
	if( $first == $second ) {
		echo ' selected';
	} else {
		echo '';
	}
}
<select>
	<option value="5" <?php selected( $number, '5' ) ?>>5</option>
	<option value="10" <?php selected( $number, '10' ) ?>>10</option>
</select>

Checked

/**
 * Output "checked"
 *
 * @param	string	$first		The first of two values to compare 
 * @param	string	$second		The second argument, which gets compared to the first
 * @return	void
 */
function checked( $first, $second )
{
	if( $first == $second ) {
		echo " checked";
	} else {
		echo '';
	}
}
<input type="checkbox" name="meine_checkbox" value="1" <?php checked( $meine_checkbox, '1'); ?>">

getIfNotEmpty

/**
 * Gibt $string zurück, falls $var nicht leer ist
 *
 * @param	string		$var		Variable
 * @param	string		$string		String
 * @return	void|string	$string
 */
function getIfNotEmpty( $var, $string )
{
	if( !empty ( $var ) ) {
		return $string;
	}
}

getAllInAssocArray

/**
 * Gibt die Tabelle $table in einem assoziativen Array zurück, wobei die Spalte
 * $first der Schlüssel und die Spalte $second jeweils der Inhalt des Array's
 * ist. 
 *
 * @param	string	$table		Table name
 * @param	string	$first		Array key
 * @param	string	$second		Array value
 * @return	array			Associative array
 */
function getAllInAssocArray( $table, $first = 'id', $second = 'name' )
{	
	$array = array();

	$query = "SELECT " . $first . ", " . $second . "
		  FROM " . $table . "
		  ORDER BY " . $second;
	$result = mysql_query( $query );
	while( $row = mysql_fetch_array( $result ) ) {
		$array[ $row[0] ] = $row[1];
	}
		
	return $array;
}

Weiterleitung bei Domainumzug

Variante A

Die alte Adresse der Webseite lautet z.B. www.kein-plan.de während die neue www.alles-ok.de lautet.

  • Datei .htaccess erstellen und folgendes hineinschreiben:
ErrorDocument 404 /index.php
  • die Datei ins root-Verzeichnis hochladen
  • Datei index.php erstellen
$link_alt = "http://".$_SERVER['HTTP_HOST'].getenv('REQUEST_URI');

Für das Beispiel wäre $link_alt = http://www.kein-plan.de/verzeichnis/datei.php

$link_neu = "http://www.NEUE-DOMAIN.de".getenv('REQUEST_URI');

Für das Beispiel wäre $link_neu = http://www.alles-ok.de/verzeichnis/datei.php

  • die Datei ins root-Verzeichnis hochladen

Variante B

Einfach

<?php
header("HTTP/1.1 301 Moved Permanently"); 
header("Status: 301 Moved Permanently");
header("Location:http://DEINEDOMAIN.DE");
header("Connection:close"); 
exit(); 
?>

Erweitert

<?php
/**
 * NOTE: This file is only used to redirect the old links to the new.
 *
 * e.g. OLD-SITE.org/articles/My_Example_Article
 *   -> NEW-SITE.org/wiki/My_Example_Article
 */
$request_uri_get = getenv('REQUEST_URI');
$old = array("artikel/", "Kategorie:");
$new = array("wiki/", "Category:");
$request_uri_new = str_replace($old, $new, $request_uri_get);

$link_alt = "http://".$_SERVER['HTTP_HOST'].$request_uri_get;
$link_neu = "http://DEINEDOMAIN.DE".$request_uri_new;

header("HTTP/1.1 301 Moved Permanently"); 
header("Status: 301 Moved Permanently");
header("Location: " . $link_neu );
header("Connection:close"); 
exit();
?>

Datum in Timestamp umformen

$datum           = "04.24.2009";
$datum_tag       = substr($datum, 0, 2);
$datum_monat     = substr($datum, 3, 2);
$datum_jahr      = substr($datum, 6, 4);
$datum_timestamp = mktime(0,0,0,$datum_monat,$datum_tag,$datum_jahr)

Formular

$timestamp = time();

// Tag
$tag_ausgewaelt = $_GET["tag"];
if( empty( $tag_ausgewaelt ) ) {
	$tag_ausgewaelt = date( "d", $timestamp );
}

// Monat
$monat_ausgewaelt = $_GET["monat"];
if( empty( $monat_ausgewaelt ) ) {
	$monat_ausgewaelt = date( "n", $timestamp );
}
	
// Jahr
$jahr_ausgewaelt = $_GET["jahr"];
if( empty( $jahr_ausgewaelt ) ) {
	$jahr_ausgewaelt = date( "Y", $timestamp );
}

$timestamp_ausgewaelt = mktime( 0, 0, 0, $tag_ausgewaelt, $monat_ausgewaelt, $jahr_ausgewaelt );
<h1>Datum</h1>
<p><b>Aktueller UNIX-Timestamp:</b></p>
<p><?php echo date( 'd.m.Y - H:i:s', $timestamp ); ?></p>
<p><input name="timestamp" type="text" size="9" value="<?php echo $timestamp; ?>" readonly></p>
<p><b>Datum in UNIX-Timestamp umwandeln:</b></p>
<p>
	<form name="datum" action="datum.php" method="get">
		<select name="tag" size="1">
		<?php
		for( $tag = 1; $tag <= 31; $tag++ ){
			?>
			<option value="<?php echo $tag; ?>" <?php selected( $tag_ausgewaelt, $tag ); ?>><?php echo $tag; ?></option>
			<?php
		}
		?>
		</select> .
		<select name="monat" size="1">
		<?php	
		for( $monat = 1; $monat <= 12; $monat++ ) {
			?>
			<option value="<?php echo $monat; ?>" <?php selected( $monat_ausgewaelt, $monat ); ?>><?php echo $monat; ?></option>
			<?php
		}
		?>
		</select>
		<select name="jahr" size="1">
		<?php
		for( $jahr = 1900; $jahr <= 2100; $jahr++ ) {
			?>
			<option value="<?php echo $jahr; ?>" <?php selected( $jahr_ausgewaelt, $jahr ); ?>><?php echo $jahr; ?></option>
			<?php
		}
		?>
		</select>
		<input type="submit" value="Umwandeln" class="button">
	</form>
</p>
<p><input name="timestamp_ausgewaelt" type="text" size="9" value="<?php echo $timestamp_ausgewaelt; ?>" readonly></p>