PHP różnica między apostrofem i cudzysłowem

Wielu początkujących programistów zastanawia się nad tym, jaka jest różnica między apostrofem, a cudzysłowem w języku PHP.

W większości przypadków polecenia i komendy wykonają się tak samo i nie będzie miało to większego znaczenia. Jednak w specyficznych sytuacjach warto wiedzieć, że napisy ujęte w cudzysłowy podlegają interpretacji przez PHP, natomiast Czytaj dalej PHP różnica między apostrofem i cudzysłowem

VIM – zamiana znaków HEX

Jeśli w VIM mamy dziwne znaki (np. <9c>) możemy je wszystkie zamienić na prawidłowe za pomocą poniższej komendy:

:%s/\%x9c/ś/gc

W powyższym przykładzie zmienimy w całym pliku źle zakodowaną literę ‚ś’.

MiniDLNA – Inotify max_user_watches [16384]

Jeśli serwer MiniDLNA nie chce się uruchomić, a w logach serwera macie poniższy błąd:

WARNING: Inotify max_user_watches [16384] is low or close to the number of used watches [5] and I do not have permission to increase this limit.  Please do so manually by writing a higher value into /proc/sys/fs/inotify/max_user_watches.

musicie zwiększyć wartość inotify za pomocą sysctl (wartość 100000 powinna być wystarczająca dla większości użytkowników):

root@server: sysctl fs.inotify.max_user_watches=100000

Aby po uruchomienia serwera zwiększona wartość inotify nie uległa zmianie, dodajcie do pliku /etc/sysctl.conf poniższy wpis lub zmieńcie wartość już istniejącą na 100000.

# Increase inotify max watchs per user for local minidlna
fs.inotify.max_user_watches = 100000

Po zmianach można spokojnie uruchomić serwer MiniDLNA:

root@server: /etc/init.d/minidlna start

lub ładniej

root@server: service minidlna start

Po dodaniu plików do serwera warto przeładować konfigurację:

root@server: /etc/init.d/minidlna force-reload

 

VIM – dodawanie numeru wiersza

W VIM’e mamy możliwość dodania numerów wierszy, przez co kod staje się czytelniejszy i łatwiej jest po nim nawigować. Będąc w trybie visual wystarczy wpisać polecenie:

:set nu

Jeśli chcemy dodać w treści dokumentu na początku każdego wiersza jego numer, wpisujemy w trybie visual poniższe polecenie:

:%s/^/\=line('.')/

Dodatkowo możemy po numerze wiersza dodać spację: Czytaj dalej VIM – dodawanie numeru wiersza

MySQL INSERT i UPDATE na postawie SELECT

W MySQL można w prosty sposób dodać nowe wiersze do jednej tabeli na podstawie danych wybranych z innej tabeli. Poniżej przykład zapytania, które wstawia do tabela1 w pola pole1_t1, pole2_t1, … wybrane wartości z tabela2 uwzględniając zadany warunek:

INSERT INTO `tabela1` (`pole1_t1`,`pole2_t1`,`pole3_t1`,`pole4_t1`,`pole5_t1`) SELECT `pole1_t2`,`pole2_t2`,`pole3_t2`,`pole4_t2`,'dowolna_wartosc' FROM `tabela2` WHERE `pole1_t2`= '2' LIMIT 2;

Nie we wszystkie pola trzeba wstawiać wartości wybrane z innej tabeli. Jak widać w powyższym przykładzie można również zamiast ‚dowolna_wartość’ wpisać własny ciąg znaków.

Oczywiście w zapytaniu możemy wybierać dane z tej samej tabeli, do której wstawiamy nowe rekordy.

Na podobnej zasadzie możemy również aktualizować rekordy:

UPDATE tabela1 t1, (SELECT * FROM tabela2 WHERE id='x') t2 SET t1.pole1 = t2.pole1 where t1.id=t2.id;

Ciekawym rozwiązaniem może być aktualizacja pola wraz ze zwiększeniem jego wartości zależnym od parametrów pobranych na podstawie SELECT’a:

SET @a =0;
UPDATE tb1 SET pole1 = pole1 + ( @a := @a +1 ) WHERE pole2 = 1 AND pole1 > 2 ORDER BY pole1 ASC;

Powyżej wartość pole1 następujących po sobie rekordów według sortowania jest zwiększana o kolejne liczby całkowite.

Brak rozszerzenia mcrypt. Proszę sprawdzić konfigurację PHP.

Jeżeli w phpMyAdmin’ie na dole wyświetla się Wam komunikat: „Brak rozszerzenia mcrypt. Proszę sprawdzić konfigurację PHP.”, aby się go pozbyć w Ubuntu 12.04 wystarczy wydać poniższe polecenie:

root@server:# apt-get install php5-mcrypt

po zainstalowaniu biblioteki mcrypt musimy przeładować konfigurację serwera apach:

root@server:# service apache2 reload

Po ponownym zalogowaniu do phpMyAdmin’a komunikat informujący o braku mcrypt powinien zniknąć.

Jeśli nadal występuje można wykonać poniższe polecenie:

root@server:# php5enmod mcrypt

i ponownie zrestartować Apache’a:

root@server:# service apache2 restart

 

 

Zend Framework – instalacja w Ubuntu 12.04

Chcąc uruchamiać projekty korzystające z Zend’a na naszym serwerze www, bez konieczności kopiowania wszystkich plików framework’a do każdego projektu możemy zainstalować Zend’a na serwerze. W tym Celu z konsoli wpisujemy:

root@server:# apt-get install zend-framework libzend-framework-zendx-php

Po instalacji możemy sprawdzić czy wszystko przebiegło w porządku:

root@server:# zf show version

powinna wyświetlić się wersja Zenda jak poniżej: Czytaj dalej Zend Framework – instalacja w Ubuntu 12.04

Ubuntu instalacja perl mysql

Żeby połączyć się z bazą danych MySQL za pomocą perl’a należy w pierwszej kolejności go zainstalować:

root@server: apt-get install perl

Jeśli przy próbie połączenia z mysql’em za pomocą perl’a otrzymujecie poniższy komunikat:

Can't locate DBI.pm in @INC (@INC contains: ...

może to oznaczać, że musicie wykonać poniższe polecenie:

root@server: apt-get install libdbi-perl

Jeśli po zainstalowaniu powyższej biblioteki, macie dalsze problemów z połączeniem z mysql’em lub otrzymujecie poniższy komunikat:

Can't locate DBD/mysql.pm in @INC ...

wystarczy wykonać polecenie:

root@server: apt-get install libdbd-mysql-perl

Jeśli łączycie się ze zdalnym serwerem pamiętajcie o:

– dodaniu odpowiednich regułek w firewall’u,

– zakomentowaniu linii: bind-address  = 127.0.0.1 w pliku /etc/mysql/my.cnf

– dodaniu uprawnień zdalnego dostępu do wybranej bazy danych dla użytkownika, którego używacie do połączenia

PHP5 curl – instalacja biblioteki

Instalacja biblioteki curl w linuxie:

root@server: apt-get install php5-curl

lub

root@server: apt-get install curl libcurl3 libcurl3-dev php5-curl

na zakończenie:

root@server: service apache2 restart

powinno działać.

Polskie znaki VIM – zmiana kodowania pliku

Jeżeli po otwarciu pliku w vim’ie zamiast polskich znaków widzicie dziwne krzaczki, np.

... tworzy po³±czenie z baz± danych ...

może to oznaczać, że otwierany plik ma inne kodowanie niż konsola. Na przykład w konsoli macie ustawione kodowanie utf8, a otwierany plik ma np. kodowanie iso-8859-2. W takiej sytuacji po otwarciu pliku, ale przed dokonaniem jakichkolwiek zmian musimy zmienić sposób wyświetlania pliku w vim’ie odpowiednio do sytuacji poniższymi poleceniami:

dla wyświetlania w utf8

:e ++enc=utf8

dla wyświetlania w iso-8859-2

:e ++enc=iso8859-2

Po takiej zmianie możemy już zapisać plik w odpowiednim do potrzeb kodowaniu.

dla utf8

:w ++enc=utf8

dla iso-8859-2

:w ++enc=iso8859-2

Po zapisaniu pliku w kodowaniu zgodnym z konsolą, przy kolejnym otwarciu pliku vim będzie już prawidłowo wyświetlał polskie znaki.

Dzięki powyższym kombinacjom możemy zapisać plik w innym kodowaniu niż jest wyświetlany w vim’ie.

Vim – porównanie dwóch otwartych plików

W vim’ie istnieje możliwość porównania dwóch otwartych plików w widoku podzielonym na okna. W tym celu wystarczy wydać poniższą komendę w obu oknach.

:diffthis

Vim w czytelny sposób zaznaczy nam różnice pomiędzy oboma plikami.

Wyjście z trybu porównania wykonamy poprzez wydanie komendy:

:difftoff

 

Vim – automatyczne wcięcie tekstu

Dużym udogodnieniem podczas pisania kodu jest przenoszenie ręcznego wcięcia tekstu do następnej linijki po wciśnięciu przycisku Enter. Niestety ostatni Vim tego nie potrafi robić domyślnie.
Można go do tego zmusić wpisując w trybie poleceń poniższy tekst:

:set autoindent

po tym zabiegu vim będzie przenosić wcięcia z bieżącej linijki do następnej po wybraniu przycisku Enter.

Jeśli chcemy zmienić domyślną szerokość tabulatora (szerokość 8 spacji) wystarczy wydać w oknie vim’a poniższe polecenie:

:set softtabstop=x

Zamiast x wpisujemy ilość spacji jaką ma mieć tabulator, np. 4 jak poniżej:

:set softtabstop=4

Po tym poleceniu vim będzie zamiast tabulatora wstawiał 4 spacje, jeśli chcemy zmienić szerokość tabulatora bez zamieniania go na spacje wydajemy poniższe polecenie:

:set tabstop=4

Powyższe możemy oczywiście zapisać do pliku konfiguracyjnego vim’a i wtedy zmiany będą obowiązywały na stałe.

Minidlna – WARNING: Inotify max_user_watches [8192]

Jeśli w logach serwera minidlna otrzymacie podobny komunikat wystarczy zwiększyć wartość fs.inotify.max_user_watches do np. 16384 poniższym poleceniem:

root@server: echo 16384 > /proc/sys/fs/inotify/max_user_watches

lub jeśli chcemy zwiększyć wartość na stałe, edytujemy plik sysctl.conf:

root@server: vim /etc/sysctl.conf

i dopisujemy na jego końcu:

fs.inotify.max_user_watches=16384