207 lines
5.8 KiB
PHP
207 lines
5.8 KiB
PHP
<?php
|
|
/// Check if expression is positive integer
|
|
function is_positive_integer($str){
|
|
return (is_numeric($str) && $str > 0 && $str == round($str));
|
|
}
|
|
|
|
function getPdoDbConnection($hostname, $dbName, $user, $password){
|
|
try{
|
|
$dbConnection = new PDO(
|
|
'mysql:host='.$hostname.';dbname='.$dbName,
|
|
$user,
|
|
$password
|
|
);
|
|
}
|
|
catch(PDOException $dbError){
|
|
echo( "Error whilst getting a dbConnection!: " . $dbError->getMessage() );
|
|
}
|
|
return $dbConnection;
|
|
}
|
|
|
|
function getCwsvJudoDbConn(){
|
|
global $cwsvJudoConfig;
|
|
// Datenbankverbindung bereit stellen
|
|
try{
|
|
$db_connection = new PDO(
|
|
'mysql:host='.$cwsvJudoConfig["db"]["host"].';dbname='.$cwsvJudoConfig["db"]["name"],//.';charset=utf8',
|
|
$cwsvJudoConfig["db"]["user"],
|
|
$cwsvJudoConfig["db"]["password"]
|
|
);
|
|
}
|
|
catch(PDOException $db_error){
|
|
echo( "Error whilst getting a dbConnection!: " . $db_error->getMessage() );
|
|
}
|
|
return $db_connection;
|
|
}
|
|
|
|
/// Gibt entweder das erste, nichtleere Element zurück, oder null
|
|
function firstNonEmptyOf($somePossibleEmptyStuff){
|
|
if (is_array($somePossibleEmptyStuff) || $somePossibleEmptyStuff instanceof Traversable){
|
|
foreach($somePossibleEmptyStuff as $entry){
|
|
if(empty($entry))
|
|
continue;
|
|
else
|
|
return $entry;
|
|
}
|
|
}
|
|
return null;
|
|
}
|
|
|
|
/// Eine als String gegebene Liste kommagetrennter key=value Paare in
|
|
/// ein assoziatives Array überführen
|
|
function getKeyValueArray($aKeyValueStringList){
|
|
$retKeyValueArray = array();
|
|
foreach( explode(",", $aKeyValueStringList) as $keyValueString){
|
|
$keyValuePair = explode("=", $keyValueString);
|
|
$retKeyValueArray[$keyValuePair[0]] = $keyValuePair[1];
|
|
}
|
|
return $retKeyValueArray;
|
|
}
|
|
|
|
/// @brief Gibt die URL der gerade aufgerufenen Seite zurück
|
|
function getCurPagesUrl(){
|
|
$pageURL = 'http';
|
|
if ($_SERVER["HTTPS"] == "on"){
|
|
$pageURL .= "s";
|
|
}
|
|
$pageURL .= "://";
|
|
if($_SERVER["SERVER_PORT"] != "80"){
|
|
$pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
|
|
}
|
|
else{
|
|
$pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
|
|
}
|
|
return $pageURL;
|
|
}
|
|
|
|
/// ein zufälliges Zitat aus der Datenbank abfragen
|
|
function getRandomCite($aDbConnection, $optionsArray = array("dbCharset" => "ISO-8859-1", "outCharset" => "UTF-8") ){
|
|
if(!$aDbConnection) return NULL;
|
|
|
|
if( empty($optionsArray['dbCharset']) ) $optionsArray['dbCharset'] = "ISO-8859-1";
|
|
if( empty($optionsArray['outCharset']) ) $optionsArray['outCharset'] = "UTF-8";
|
|
|
|
try{
|
|
$pdoStatementForQuerryingZitat = $aDbConnection->prepare(
|
|
"SELECT * FROM zitate ORDER BY RAND() LIMIT 1;"
|
|
);
|
|
$pdoStatementForQuerryingZitat->execute();
|
|
$retZitat = $pdoStatementForQuerryingZitat->fetchAll(PDO::FETCH_ASSOC);
|
|
|
|
// Zeichensatzkonvertierung
|
|
foreach($retZitat as &$entry){
|
|
array_walk(
|
|
$entry,
|
|
function (&$value, $key, $optionsArray) {
|
|
$value = iconv($optionsArray['dbCharset'], $optionsArray['outCharset'], $value);
|
|
},
|
|
$optionsArray
|
|
);
|
|
}
|
|
$retZitat = $retZitat[0];
|
|
}
|
|
catch(PDOException $db_error){
|
|
$retZitat['zitat'] = "There is no spoon!";
|
|
}
|
|
return $retZitat;
|
|
}
|
|
|
|
/// filtert aus einem Array einträge in der gegebenen Reihenfolge
|
|
function arrayKeyFilter($anArray, $someKeys){
|
|
// var_dump($anArray, $someKeys);
|
|
if( (is_array( $anArray ) || is_object( $anArray )) && ( is_array( $someKeys ) || is_object( $someKeys ) ) ){
|
|
$retArray = array();
|
|
foreach($someKeys as $key){
|
|
if( array_key_exists($key, $anArray) ){
|
|
$retArray[] = $anArray[$key];
|
|
}
|
|
}
|
|
return $retArray;
|
|
}
|
|
return null;
|
|
}
|
|
|
|
/// Linkeinträge aus einer jsonDatei laden
|
|
function jsonLinkFile2NavLinkList($aJsonFileName, $someLinkNames, $someOptions = [] ){
|
|
if( !file_exists($aJsonFileName) ) return null;
|
|
if( !(is_array( $someLinkNames ) || is_object( $someLinkNames )) ) return null;
|
|
|
|
return arrayKeyFilter(
|
|
json_decode(
|
|
file_get_contents($aJsonFileName),
|
|
true
|
|
),
|
|
$someLinkNames
|
|
);
|
|
}
|
|
|
|
function echoThisOrThat($This, $that){
|
|
echo( !empty($This) ? $This : $that );
|
|
}
|
|
|
|
function echoThisWhenThat($This, $that){
|
|
if( !empty($that) ) echo( $This );
|
|
}
|
|
|
|
function thisWhenThat($This, $that){
|
|
if( empty($that) ) return "";
|
|
return $This;
|
|
}
|
|
|
|
setlocale (LC_ALL, 'de_DE@euro', 'de_DE', 'de', 'ge');
|
|
function toAscii($str, $replace=array(), $delimiter='-') {
|
|
if( !empty($replace) ) {
|
|
$str = str_replace((array)$replace, ' ', $str);
|
|
}
|
|
|
|
$clean = iconv('UTF-8', 'ASCII//TRANSLIT', $str);
|
|
$clean = preg_replace("/[^a-zA-Z0-9\/_|+ -]/", '', $clean);
|
|
$clean = strtolower(trim($clean, '-'));
|
|
$clean = preg_replace("/[\/_|+ -]+/", $delimiter, $clean);
|
|
|
|
return $clean;
|
|
}
|
|
|
|
/// Wrapper function for a query to the
|
|
/// $aDbConnection connection to a db
|
|
function dbQuery($aDbConnection, $aQueryString, $aBindArray = array(), $someOptions = array( "dbCharset" => "ISO-8859-1", "outCharset" => "UTF-8" ) ){
|
|
if( empty($someOptions['dbCharset']) ) $someOptions['dbCharset'] = "ISO-8859-1";
|
|
if( empty($someOptions['outCharset']) ) $someOptions['outCharset'] = "UTF-8";
|
|
/// @toDo: Bisher wird nur die Rückgabe konvertiert. Eigentlich muss
|
|
/// doch auch die Eingabe konvertiert werden. Aber das jetzt
|
|
/// umzustellen wird schwer! Die User m Wettkampfplaner sind ja z.B.
|
|
/// als UTF8 in latin1(?) gespeichert.
|
|
try{
|
|
$pdoStatement = $aDbConnection->prepare( $aQueryString );
|
|
foreach( $aBindArray as $bindName => $bind ){
|
|
$pdoStatement->bindValue(
|
|
$bindName,
|
|
$bind['value'],
|
|
(isset($bind['data_type'])?$bind['data_type']:PDO::PARAM_STR)
|
|
);
|
|
}
|
|
$pdoStatement->execute();
|
|
$ret = $pdoStatement->fetchAll(PDO::FETCH_ASSOC);
|
|
}
|
|
catch(PDOException $db_error){
|
|
print "Error!: " . $db_error->getMessage() . "<br/>";
|
|
return null;
|
|
}
|
|
|
|
// Zeichensatzkonvertierung
|
|
if( is_array($ret) ){
|
|
foreach($ret as &$entry){
|
|
array_walk(
|
|
$entry,
|
|
function (&$value, $key, $someOptions) {
|
|
$value = iconv($someOptions['dbCharset'], $someOptions['outCharset'], $value);
|
|
},
|
|
$someOptions
|
|
);
|
|
}
|
|
}
|
|
return $ret;
|
|
}
|
|
|
|
?>
|