| Autor | Správa |
neXor
 Užívateľ
 Založený: 27.06.2009 Príspevky: 75 Bydlisko: Levice, Slovensko
 | Zaslal: Št 24.12.09 11:24 |   |
Vygenerovanie náhodného reťazca
Autor: neXor
Poziadavky: PHP5
Popis: Funkcia nahodny_retazec vygeneruje náhodný reťazec, ktorý sa bude skladať z ľubovolného počtu znakov a z ľubovoľého typu znakov
| kód: | <?php
/*
* Náhodný reťazec
*
* Generovanie náhodného reťazca
*
* @author neXor <neXor.sk@gmail.com>
* @version 1.2
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*/
function nahodny_retazec ( $pocet, $typ ) {
$vystup = "";
$cisla = array ( "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" );
$pismena = array ( "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m",
"n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z",
"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M",
"N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", );
$nezamenitelne = array ( "a", "b", "c", "d", "e", "f", "g", "h", "j", "k", "m", "n",
"p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z",
"A", "B", "C", "D", "E", "F", "G", "H", "J", "K", "L", "M",
"N", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z",
"2", "3", "4", "5", "6", "7", "8", "9" );
if ( $typ == "int" ) {
$nahoda = $cisla;
} elseif ( $typ == "all" ) {
$nahoda = $cisla;
foreach ( $pismena as $prvok ) {
$nahoda[] = $prvok;
}
} elseif ( $typ == "str" ) {
$nahoda = $pismena;
} elseif ( $typ == "zam" ) {
$nahoda = $nezamenitelne;
}
$polia = count ( $nahoda ) - 1;
for ( $int = 1; $int <= $pocet; $int++ ) {
$index = mt_rand(0, $polia); //vygenerovať náhodný znak
$vystup .= $nahoda[$index]; //pripojenie náhodného znaku k premennej $vystup
}
return $vystup;
}
?>
|
Príklad použitia
| kód: |
nahodny_retazec ( 4, "int" ); //vygeneruje 4 náhodné čísla
nahodny_retazec ( 4, "all" ); //vygeneruje náhodný reťazec s dĺžkou 4 ľubovolních znakov
nahodny_retazec ( 4, "str" ); //vygeneruje 4 náhodné písmená
nahodny_retazec ( 4, "zam" ); //vygeneruje náhodný reťazec s dĺžkou 4 nezameniteľných znakov (boli vynechané 0, 1, o, O, i, I, l)
|
|
| |
    |
 |
path
 Užívateľ
 Založený: 23.01.2010 Príspevky: 22 Bydlisko: Nitra
 | Zaslal: Po 25.01.10 20:55 |   |
konfiguracna trieda [singleton]
//prispejem aj ja nieco take starsie z mojej dielne
//potrebuje to php 5+
cfg.php| kód: | class cfg
{
private static $instance;
private $vars;
private function __construct()
{
$__defined_vars = array_keys(get_defined_vars());
require('config.php');
$this->vars = array_diff(get_defined_vars(), $__defined_vars);
foreach ($this->vars as $var)
{
unset($$var);
}
unset($this->vars['__defined_vars']);
}
private function __clone() {}
public static function getInstance()
{
if(!self::$instance){
self::$instance = new self();
}
return self::$instance;
}
public static function get($value)
{
$obj = cfg::getInstance();
return $obj->vars[$value];
}
}
|
trieda nacita vsetky premenne z konfiguracneho suboru(config.php) pri svojom prvom pouziti, priklad config:
| kód: | // Image Cache Settings
$useCache = true;
$cachePath = 'cache';
$cacheSizes = array(array('w' => 170, 'h' => 130), array('w' => 1, 'h' => 1));
// CP Settings
$version = '4.0b';
$autologoff = -1; //[mins], -1 to infinite
|
je to singleton takze staci zavolat hocikde v skripte nieco ako | kód: | | $version = cfg::get('version'); | a mate premennu z konfiguracneho suboru vzdy pristupnu bez toho aby ste sa hrali s globals atd. ... pre lepsi zazitok pouzivat s spl_autoload_register na vacsich projektoch  |
| |
  |
 |
pizet
 Užívateľ
 Založený: 16.08.2009 Príspevky: 186 Bydlisko: Levice
 | Zaslal: Ne 16.05.10 21:35 |   |
Odosielanie súborov na server
Autor: pizet
Požiadavky: PHP5
Popis: Jednoduchý skript na odosielanie súborov na server. Konkrétne tento povolí odosielanie obrázkov ".png", ".jpg" alebo ".gif".
upload.php:
| kód: | <html>
<head>
<title>Upload obrazkov</title>
</head>
<body>
<form enctype="multipart/form-data" action="spracuj.php" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="16000" />
Odoslat tento subor: <input name="obrazok" type="file" /><br />
<input type="submit" value="Odoslat" />
</form>
</body>
</html> |
spracuj.php:
| kód: | <?php
/* Konfiguracne nastavenie */
$max_velkost_obrazku = 50000;
$subor_povinny = true;
/* Cielovy odresar prenosu */
$stranka_odoslania = 'upload.php';
$cielovy_adresar = '/server/www/fileupl/';
$chybova_sprava = false;
do {
/* existuje prvok so suborom? */
if ( !isset ( $_FILES['obrazok'] ) ){
$chybova_sprava = 'Formular bol odoslany neuplny.';
break;
} else {
$obrazok = $_FILES['obrazok'];
}
/* Overenie vsetkych moznych chyb */
switch ( $obrazok['error'] ){
case UPLOAD_ERR_INI_SIZE: // veľkosť súboru prekročila limit nastavený v súbore php.ini
$chybova_sprava = 'Velkost obrazku prekrocila povoleny limit ' .
$max_velkost_obrazku . 'bajtov.';
break 2;
case UPLOAD_ERR_PARTIAL: // počas načítania súboru došlo ku chybe, bola načítaná len časť
$chybova_sprava = 'Pri odoslani suboru doslo ku chybe, ' .
"skuste prosim znovu <a href='{$stranka_odoslania}'></a>.";
break 2;
case UPLOAD_ERR_NO_FILE: // nepodarilo sa na server odoslať žiadny súbor
if ( $subor_povinny ){
$chybova_sprava = 'Nebol vybraty ziadny subor, ' .
"vyberte ho <a href='{$stranka_odoslania}'>tu</a>.";
break 2;
}
break 2;
case UPLOAD_ERR_FORM_SIZE:
$chybova_sprava = 'Velkost suboru je podla skryteho pola ' .
$_REQUEST[MAX_FILE_SIZE] . ".";
case UPLOAD_ERR_OK:
if ( $obrazok['size'] > $max_velkost_obrazku ){
$chybova_sprava = 'Obrazok je prilis velky. Nemoze obsahovat viac nez ' .
$max_velkost_obrazku . 'bajtov.';
}
break 2;
default:
$chybova_sprava = "Doslo ke neznamej chybe, " .
"skuste to znovu <a href='{$stranka_odoslania}'>tu</a>";
}
/* musime overit ci su obrazky PNG alebo JPEG */
if ( !in_array ( $obrazok['type'], array ( 'image/jpeg', 'image/pjpeg', 'image/png', 'image/gif' ) ) ){
$chybova_sprava = "Povolene su iba formaty PNG, JPEG, GIF " .
"opakujte pokus <a href='{$stranka_odoslania}'>tu</a>.";
break;
}
} while ( 0 );
/* Ak nedoslo ku chybe tak presunieme subor do prijatych suborov */
if ( !$chybova_sprava ){
if ( !@move_uploaded_file( $obrazok['tmp_name'], $cielovy_adresar . $obrazok['name'] ) ){
$chybova_sprava = "Chyba pri presunuti suboru do cieloveho adresara," .
"opakujte pokus <a href='{$stranka_odoslania}'>tu</a>.";
}
}
?>
<html>
<head><title>spracuj.php</title></head>
<body>
<?php
if ( $chybova_sprava ) {
echo $chybova_sprava;
} else {
?>
<img src="fileupl/<?php echo $obrazok['name'] ?>" />
<?php
}
?>
</body>
</html> |
|
_________________ "Najlepším spôsobom, ako sa na budúcnosť pripraviť, je vymyslieť si ju." - John Sculley | |
    |
 |
JanoF
 Správca fóra
 Založený: 01.05.2005 Príspevky: 8665 Bydlisko: Bratislava Vek: 26
 | Zaslal: Pi 26.08.11 12:53 |   |
Funkcia na generovanie pekných url
| kód: | setlocale(LC_ALL, 'sk_SK.UTF8');
function rewrite($string) {
$string = preg_replace('~[^\\pL0-9_]+~u', '-', $string);
$string = trim($string, "-");
$string = iconv("UTF-8", "ASCII//TRANSLIT", $string);
$string = preg_replace('~[^-a-z0-9_]+~i', '', $string);
return strtolower($string);
} |
Príklad:
| kód: | $text = 'Názov članku';
rewrite($text); |
Výstup:
|
_________________ Skrinka: Nexus Morpho & Enermax UCTB12P | Zdroj: Enermax EMG800AWT 800W | Základná doska: Asus Rampage III Gene | Procesor: Intel Core i7 990X Extreme Edition 3.46 GHz & Scythe Susanoo SCSO-1000 | Pamäť: Kingston HyperX XMP 24 GB DDR3 1600 MHz | Grafická karta: Asus GeForce GT 440 1 GB DDR3 & Thermalright HR-03 | Pevný disk: Intel SSD 510 Series 250GB | Optická mechanika: Plextor PX-820SA | Čítačka kariet: Akasa AK-ICR-11 | Klávesnica: Logitech G19 | Myš: Logitech G9x & Razer Kabuto | Monitor: 24" LCD Eizo FlexScan S2431WE | Reproduktory: Logitech Z-2300 | Operačný systém: Microsoft Windows 7 & FreeBSD 9 | Spotreba: Idle - 200W / Burn - 400W | Mobil: Nokia N9 64GB | |
      |
 |
|
Nemôžete pridávať nové témy do tohto fóra. Nemôžete odpovedať na témy v tomto fóre. Nemôžete upravovať svoje príspevky v tomto fóre. Nemôžete mazať svoje príspevky v tomto fóre. Nemôžete hlasovať v tomto fóre.
|
|