Różności PHP

odczyt z bazy
$result=mysql_query(“SELECT * FROM table WHERE costam=’ilestam’ ORDER by ‘id'”) or die (mysql_error());
$ile=mysql_num_rows($result); <—- pobiera ilość wyników zapytania z bazy, a później można normalnie wyświetlić rekordy,
if(mysql_num_rows($result)>0)
{
zrób cośtam
} <– to przydatne do sprawdzenia, czy baza zawiera wogóle co najmniej jeden rekord. A teraz normalne wyświetlenie rekordów:
while($get=mysql_fetch_array($result))
{
$get[‘id’]
}

zapis do bazy nowego rekordu:
$add_record = “INSERT INTO tabela (imie, nazwisko) values (‘$_POST[imie]’, ‘$_POST[nazwisko]’)”;
mysql_query ($add_record) or die (“Blad – Rekord nie może być dodany” . mysql_error());
print(“<META HTTP-EQUIV=”Refresh” CONTENT=”0;url=costam.php”>”);

edycja rekordu:
$edytuj_rekord = “update tabela SET
imie=’$_POST[imie]’, nazwisko=’$_POST[nazwisko]’
WHERE
id=’ilestam'”;
mysql_query ($edytuj_rekord);

strip_tags(wordwrap(stripslashes(substr($get_last5_comments[‘content’], 0, 100)), 25, ”
“, 1))

strip_tags – usuwa wszelkie znaczniki HTML. Nikt bez naszego przyzwolenia nie zrobi linku, nie wklei obrazka itp.
wordwrap – eliminuje wpisy dłuższe niż (tu) 25 znaków, zastępując je
, czyli nową linią. Nikt nie zrobi nam przez to strony przystosowanej do rozdzielczości milion*milion poprzez wpisanie hiperdługiego wyrazu
stripslashes – jeśli w bazie danych dla bezpieczeństwa znaki takie jak ” czy ‘ przechowywane są z poprzedzającym – to polecenie usuwa znaki w trakcie generowania kodu HTML (nie usuwa z bazy!!!)
substr – wyświetla (tu) 100 znaków zaczynając od zerowego znaku

Grupowanie – odczyt informacji o statystykach mojej strony z logów:
$result_stat=mysql_query(“SELECT www_articles.*, www_logs.*, www_articles.id as article_id, COUNT(www_logs.$what_count) as how_many FROM www_logs, www_articles
WHERE
www_logs.article_id = www_articles.id $notfor_comments $filter_stat
GROUP by www_logs.$what_count
ORDER BY how_many DESC LIMIT 100”) or die (mysql_error());

Uwaga! Count działa tylko w połączeniu z GROUP!

Zliczanie ilości rekordów o jakimś kryterium:
list($comments)=mysql_fetch_row(mysql_query(“SELECT count(id) FROM table WHERE id=’$get[id]'”))

strpos() – Google skanując stronę oraz ja sam – bez potrzeby nabijane są liczniki i logi – rozwiązanie:
if (!strpos(gethostbyaddr($_SERVER[‘REMOTE_ADDR’]), “googlebot.com”)>0 AND !strpos(gethostbyaddr($_SERVER[‘REMOTE_ADDR’]), “norw”)>0)
{
$edit_counter=”UPDATE tabela SET counter=’$counter’ WHERE id=’$get[id]'”
mysql_query($edit_counter) or die(mysql_error());
}

$test=strpos($zmienna, “co szukac”); – jeśli w $zmienna zostanie znaleziony ciąg “co szukac” w $test informacja 5 będzie oznaczała, że “co szukać” zaczyna się na piątej pozycji licząc od zera. if(strpos($zmienna, “xxx”)>0) {xxx jest w zmiennej!}

strlen() – sprawdzanie długości ciągu:
$ile=strlen($ciag);if(strlen($ciag)>100 {zmienna dłuższa niż 100};

Data i Czas:” . mktime . ” <— zapis do bazy czasu w formacie mktime
date(”d-M-Y H:i:s”, $get_comments[”datetime”]) – odczyt przez PHP z bazy z formatu datetime

Zmienne globalne:
$_SERVER[‘REMOTE_ADDR’] – IP
$_SERVER[‘REMOTE_HOST’] – nazwa hosta ***UWAGA *** – nie działa w PHP5, należy stosować:
gethostbyaddr($_SERVER[‘REMOTE_ADDR’])
$_SERVER[HTTP_USER_AGENT] – przegladarka i system

$foruser=@array_unique($foruser); usuwa z tablicy zduplikowane wartości, pozostawiając oryginalne wartości kluczy

foreach ($foruser as $element)
{
$del_arr=array_search($element, $notforuser);
unset($notforuser[“$del_arr”]);
}
Dla każdego elementu tablicy $foruser użyje zmiennej $element o wartości każdego z elementów. Pętla sprawdza, czy w tablicy $notforuser nie występują elementy z tablicy for user. Jeśli w tablicy $notforuser znaleziony zostanie element $element, array_search przypisze do $del_arr wartość ideksu znalezionego elementu. Unset usuwa z tablicy $notforuser element o indeksie $del_arr.

preg_replace – podmiana fragmentów ciągu:

$patterns[0] = ‘/{{imie}}/’;
$replacements[0] = $get[imie];
$patterns[1] = ‘/{{nazwisko}}/’;
$replacements[1] = $get[nazwisko];
$patterns[2] = ‘/{{tabulacja}}/’;
$replacements[2] = ” “;
$patterns[3] = ‘/{{nowa_linia}}/’;
$replacements[3] = ”
“;

preg_replace($patterns, $replacements, $get[tresc])

Dzięki tej funkcji w bazie danych możemy trzymać szablon listu o treści “szanowny Panie {{imie}} {{nazwisko}}. Uprzejmie informujemy, że”…

str_replace(“co”, “na co”, $text); – podmiana fragmentu tekstu

$tekst = ‘Zażółć gęślą jaźń’;
$wynik = strtr($tekst, ‘ĘÓĄŚŁŻŹŃęóąśłżźćń’, ‘EOASLZZCNeoaslzzcn’); – np. podmiana znaków diaktrycznych

rtrim(); – usuwa znaki takie jak ”
” (nowy wiersz), tabulator, baiałe znaki (dodatkowa spacja)

htmlspecialchars ma na celu umożliwienie mi wstawiania znaków takich jak <TD> do kodu html ale bez ich interpretacji. &lt;TD&gt; == <TD>. Aby wyswietlić na stronie html napis <TD> muszę użyć &lt;TD&gt;. Z tym nie ma problemu, jednak ponowny odczyt w formularzu artykułu powoduje odczyt tego jako <TD> (w okienku formularza widzę <TD>). Zapisanie artykułu spowoduje zastąpienie &lt;TD&gt; na <TD> i dupa. Na ten problem działała także funkcja htmlentities, ale nie widzieć czemu powodowała zmianę kodowania polskich znaków…

ceil() – zaokrągla w górę (np. 1.2 = 2)
floor() – zaokrągla w dól (np. 1.7=1)
round() – zaokrągla w standardowy sposób (np. 1.2 =1 ale już 1.7=2), do tego posiada jeszcze jeden parametr określający dokładność zaokrąglania.

Pokolorowana zawartość pliku:
highlight_file(“home/xxx/xxx/index.php”);

Funkcja higlight_file() ma pewną wadę. Odczytuje zawartość pliku, lecz nie zwraca tej zawartości w postaci łańcucha. Zapisuje treść do bufora. Jeżeli chcemy aby zawartość kodu źródłowego pliku została zapisana do zmiennej należy skorzystać z tej instrukcji:

ob_start();
// kolorowanie składni wybranego dokumentu (zapisanie go do zmiennej $source
highlight_file($_GET[‘url’]);
$source = ob_get_contents();
ob_end_clean();

odczyt typu zmiennej
gettype($zmienna)

sprawdzenie parzystości zmiennej
if(($zmienna % 2)==0) – zmienna parzysta

mysql_insert_id() – sprawdza id ostatnio dodanego rekordu

$wynik=ucfirst($string_zrodlowy) – zamienia pierwszą literę ciągu na wielką

if (($zmienna % 7)==0) – w tym przypadku oznacza, że $zmienna dzieli się przez siedem bez reszty. Wygodne do analizowania np. co siódmego rekordu 🙂

session_id(); – wyświetla numer aktualnej sesji

ucfirst() – pierwsza litera zmiennej będzie wyświetlona jako wielka
strtoupper() – funkcja zamienia wszystkie litery w łańcuchu na wielkie
strtolower() – funkcja zamienia wszystkie litery w łańcuchu na małe

Leave a Reply

Your email address will not be published. Required fields are marked *

CAPTCHA
Change the CAPTCHA codeSpeak the CAPTCHA code
 

This site uses Akismet to reduce spam. Learn how your comment data is processed.