Archiwum tagu ‘PHP’

Optymalizacja

Jako że skończyłem praktycznie moją stronę domową, zabrałem się za jej optymalizację, którą podzieliłem na kilka etapów (w nawiasach podane ile dało się zaoszczędzić):
- code cleanup (10kb)
- optymalizacja kodu php (2 kb)
- optymalizacja kodu mysql (zyskałem trochę na czasie)
- optymalizacja kodu css (2kb: http://iceyboard.no-ip.org/projects/css_compressor)
- optymalizacja obrazków (z 1024 kb zrobiło się 18kb!)
- optymalizacja obrazków dzieliła się na:
-znalezienie punktów wspólnych obrazków, zmniejszenie ich rozmiarów
-kompresja z użyciem optipng (7 poziom kompresji)
-tam, gdzie był mały/praktycznie żaden spadek jakości, użyłem jpg

Cała strona, waży teraz dokładnie 24kb.

htmlentities i polskie znaki

Domyślnie htmlentities konwertuje również polskie znaki do czegoś raczej nieużytecznego.
Ja sobie poradziłem w taki sposób:

htmlentities($var , ENT_COMPAT , ‘UTF-8′);

10 ostatnich zapytań w pliku .txt

Na potrzeby ostatniego zlecenia potrzebowałem również trzymać 10 ostatnio szukanych fraz w pliku .txt .
Oto jak to rozwiązałem.

$new_keyword = ‘Doom’; //nowe slowo//pobieramy plik
$data = file_get_contents(‘./search_keywords.txt’);//robimy z niego tablice
$data = explode(‘,’, $data);

//sprawdzamy czy taki wpis jest juz w tablicy, jesli nie ma, laczymy tablice
if (!in_array($new_keyword, $data)){
$newArray = array_merge(array(0 => $new_keyword), $data);
}else $newArray = $data;

//tworzymy dane do zapisu w pliku
for($i = 0; $i < 10; ++$i){
$out .=$newArray[$i] .’,';
}

//otwieramy plik, zapisujemy, zamykamy
$fh = fopen(‘./search_keywords.txt’, ‘w’);
fwrite($fh, $out);
fclose($fh);

Active Record w PHP

Napisałem mały Active Record dla dFrame. Przykład:

class Person extends ActiveRecord{
public function __construct(){
parent::__construct(‘persons’);
}
};
//EXAMPLE USING

//Inserting a new person
$person = new Person();
$person->name = ‘Bjourne’;
$person->date = date(‘d-m-Y’);
$person->save();

//Updating person
$person = new Person();
$person->findById(6); //findBy[field name]([field value])

$person->name = ‘Maricruz’;
$person->date = date(‘d-m-Y’);
$person->save(); //update

dFrame – nowa klasa filtrów

Dzięki całkowicie przepisanej klasie filtrów, możliwe teraz są takie cuda na kiju :-) (przykład z dFrame):

/* Usage in framework: */
$filteredValue = Filter::Num($val, “<50 and >0″);
$filteredValue = Filter::Num( $a->in->title , “<50 and >0″ ); //$_GET or $_POST ‘title’
$filteredValue = Filter::Num($val, “<50 or >0″);
$filteredValue = Filter::Num($val, “<50>0″);
$filteredValue = Filter::Num($val, “<50″);
$email = Filter::Email($a->in->email, “<50″);

Follow

Otrzymuj każdy nowy wpis na swoją skrzynkę e-mail.