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() . "
"; 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; } ?>