<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>siec.com.pl &#187; PHP</title>
	<atom:link href="http://www.siec.com.pl/tag/php/feed" rel="self" type="application/rss+xml" />
	<link>http://www.siec.com.pl</link>
	<description>skrypty, rozwiązania, pomysły...</description>
	<lastBuildDate>Fri, 20 Aug 2010 20:06:10 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Skrypt rejestrujący wejścia Googlebot&#8217;a</title>
		<link>http://www.siec.com.pl/skrypt-rejestrujacy-wejscia-googlebota.html</link>
		<comments>http://www.siec.com.pl/skrypt-rejestrujacy-wejscia-googlebota.html#comments</comments>
		<pubDate>Mon, 24 May 2010 16:10:52 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Skrypty]]></category>
		<category><![CDATA[GoogleBot]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.wisnia.izg.pl/?p=54</guid>
		<description><![CDATA[Prosty skrypt w PHP, który rejestruje i zapisuje wejścia botów: Googlebot&#8217;a, Yahoo czy innych w zależności od konfiguracji. Aby uruchomić skrypt należy utworzyć plik stats.php i wkleić do niego poniższy kod: stats.php &#60;?php // funkcja która sprawdza czy odwiedzający jest botem, jeżeli jest zwraca true function is_bot(){ $roboty = array('google','yahoo','msn'); $regex = '('.implode($roboty, ')&#124;(').')'; return [...]]]></description>
			<content:encoded><![CDATA[<p>Prosty skrypt w PHP, który rejestruje i zapisuje wejścia botów: Googlebot&#8217;a, Yahoo czy innych w zależności od konfiguracji. Aby uruchomić skrypt należy utworzyć plik stats.php i wkleić do niego poniższy kod:</p>
<p><span id="more-54"></span></p>
<p>stats.php</p>
<pre>&lt;?php
// funkcja która sprawdza czy odwiedzający jest botem, jeżeli jest zwraca true
function is_bot(){
 $roboty = array('google','yahoo','msn');
 $regex = '('.implode($roboty, ')|(').')';
 return eregi($regex, $_SERVER['HTTP_USER_AGENT']);
}
// jeżeli odwiedzający jest botem wykonywany jest poniższy kod
if (is_bot()){
 //zapisanie ip do zmiennej
 $ip = $_SERVER['REMOTE_ADDR'];
 //zapisanie hosta do zmiennej
 $host = gethostbyaddr($ip);
 //nazwa pliku na pdostawie daty
 $file_name=date("Y-m-d").".log";
 //pobranie agenta jakim sie przedstawia bot
 $user_agent=$_SERVER['HTTP_USER_AGENT'];
 //pobranie nazwy url którego odwiedził bot
 $url=$_SERVER["REQUEST_URI"];
 //stworzenie linijki wpisuj
 $wpis=date("Y-m-d H:i:s")." | ".$host." | ".$ip." | ".$url." | ".$user_agent."\n";
 //sciezka zapisu pliku logowania
 $nazwa_pliku = "logi/$file_name";
   //jeżeli plik istnieje dopisanie linijki wpisu, jezeli nie, stworzenie i dopisanie linijki wpisu
   if (file_exists($nazwa_pliku)) {
   $plik = fopen($nazwa_pliku, 'a');
   fputs($plik,$wpis);
   fclose($plik);
   } else {
    $pk = fopen($nazwa_pliku, 'w');
    fputs($pk,$wpis);
    fclose($pk);
   }
}
?&gt;</pre>
<p>Teraz wystarczy dodać skrypt na każdej stronie czy podstronie na której chcemy widzieć czy wchodził jakiś bot.</p>
<pre>&lt;php
include ('stats.php');
?&gt;</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.siec.com.pl/skrypt-rejestrujacy-wejscia-googlebota.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zaokrąglanie liczb &#8211; PHP</title>
		<link>http://www.siec.com.pl/zaokraglanie-liczb-php.html</link>
		<comments>http://www.siec.com.pl/zaokraglanie-liczb-php.html#comments</comments>
		<pubDate>Mon, 24 May 2010 09:51:43 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Porady i rozwiązania]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.siec.com.pl/?p=81</guid>
		<description><![CDATA[Wbudowane funkcje, które służą zaokrągleniu danej liczby: round(), ceil(), floor(), number_format(). round() &#8211; zaokrągla liczbę standardowym sposobem, w górę jak jest powyżej 0,5 a dół jak jest poniżej. Funkcja przyjmuje trzy wartości: round(float$wartosc, int $precyzja,  int $tryb) wartość &#8211; zmienna do zaokrąglenia, precyzja - ilość miejsc po przecinku do jakich zaokrąglamy, tryb &#8211; jeden z [...]]]></description>
			<content:encoded><![CDATA[<p>Wbudowane funkcje, które służą zaokrągleniu danej liczby: <strong>round</strong>(), <strong>ceil</strong>(), <strong>floor</strong>(), <strong>number_format</strong>().</p>
<p><span id="more-81"></span></p>
<p><strong>round</strong>() &#8211; zaokrągla liczbę standardowym sposobem, w górę jak jest powyżej 0,5 a dół jak jest poniżej. Funkcja przyjmuje trzy wartości: round(float$wartosc, int $precyzja,  int $tryb)</p>
<p style="padding-left: 30px;"><span style="text-decoration: underline;">wartość</span> &#8211; zmienna do zaokrąglenia,</p>
<p style="padding-left: 30px;"><span style="text-decoration: underline;">precyzja </span>- ilość miejsc po przecinku do jakich zaokrąglamy,</p>
<p style="padding-left: 30px;"><span style="text-decoration: underline;">tryb</span> &#8211; jeden z trybów PHP_ROUND_HALF_UP, PHP_ROUND_HALF_DOWN, PHP_ROUND_HALF_EVEN, lub PHP_ROUND_HALF_ODD, <strong>uwaga ta opcja działa w wersji PHP &gt; 5.3.0</strong></p>
<p>Przykłady:</p>
<pre>&lt;?php
 echo round(1.3);        // 1
 echo round(1.5);        // 2
 echo round(1.7);        // 2
 echo round(1.6, 0);     // 2
 echo round(2.95551, 3); // 2.956
 echo round(32411, -3);  // 32000
 echo round(2.045, 2);   // 2.05
 echo round(2.055, 2);   // 2.06
 echo round(1.5, 0, PHP_ROUND_HALF_UP);   // 2
 echo round(1.5, 0, PHP_ROUND_HALF_DOWN); // 1
 echo round(1.5, 0, PHP_ROUND_HALF_EVEN); // 2
 echo round(1.5, 0, PHP_ROUND_HALF_ODD);  // 1
?&gt;</pre>
<p><strong>ceil()</strong> &#8211; zaokrąglenie liczby w górę</p>
<pre>&lt;?php
echo ceil(1.1);   // 2
echo ceil(1.99);  // 2
echo ceil(-1.14); // -1
?&gt;</pre>
<p><strong>floor()</strong> &#8211; zaokrąglenie liczny w dół</p>
<pre>&lt;?php
echo floor(1.1);    // 1
echo floor(1.99);   // 1
echo floor(-1.14);  // -2
?&gt;</pre>
<p><strong>number_format()</strong> &#8211; funkcja, która nadaje format liczby tysięcznej, przyjmuje wartości number_format(float $wartosc, int $po_przecinku, string $separator,  string $separator_tysiaca)</p>
<p style="padding-left: 30px;">$wartość &#8211; zmienna do formatowania,</p>
<p style="padding-left: 30px;">$po_przecinku &#8211; ile cyfr po przecinku wyświetlamy,</p>
<p style="padding-left: 30px;">$separator &#8211; separator oddzielający liczbę całkowita od ułamkowej, zazwyczaj kropka lub przecinek,</p>
<p style="padding-left: 30px;">$separator &#8211; separator liczby tysięcznych, zazwyczaj spacja</p>
<pre>&lt;?php
 $liczba = 1234.56789;
 // format angielski
 $format_angielski = number_format($liczba);
 // 1,235
 // format polski
 $format_polski = number_format($liczba, 2, ',', ' ');
 // 1 234,57
 // format angielski bez spacji pomiędzy tysiącami
 $format_angielski_a = number_format($liczba, 2, '.', '');
 // 1234.57
?&gt;</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.siec.com.pl/zaokraglanie-liczb-php.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Funkcja sprawdzająca poprawność NIP w PHP</title>
		<link>http://www.siec.com.pl/funkcja-sprawdzajaca-poprawnosc-nip-w-php.html</link>
		<comments>http://www.siec.com.pl/funkcja-sprawdzajaca-poprawnosc-nip-w-php.html#comments</comments>
		<pubDate>Mon, 15 Mar 2010 12:23:06 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Skrypty]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.wisnia.izg.pl/?p=58</guid>
		<description><![CDATA[NIP czyli Numer Identyfikacji Podatkowej, w Polsce każdy podatnik posiada taki właśnie numer. W wielu serwisach, przy rejestracji wymagane pole to właśnie taki numer, potrzebny on jest przeważnie w celu wystawienia faktury. Czy można napisać funkcję która sprawdzi porawność numeru NIP? Oczywiście, ponieważ numer NIP generowany jest na podstawie znanego algorytmu. NIP składa się z [...]]]></description>
			<content:encoded><![CDATA[<p>NIP czyli Numer Identyfikacji Podatkowej, w Polsce każdy podatnik posiada taki właśnie numer. W wielu serwisach, przy rejestracji wymagane pole to właśnie taki numer, potrzebny on jest przeważnie w celu wystawienia faktury.</p>
<p><span id="more-58"></span></p>
<p>Czy można napisać funkcję która sprawdzi porawność numeru NIP? Oczywiście, ponieważ numer NIP generowany jest na podstawie znanego algorytmu. NIP składa się z dziesięciu cyfr, ostatnia cyfra to suma kontrolna.</p>
<pre>function sprawdzNIP($nip)
{
//sprawdzamy czy $nip składa się z 10 cyfer
if (strlen($nip) != 10)
{
return false;
}
//wrzucamy wagi w tablicę
$wagi = array(6, 5, 7, 2, 3, 4, 5, 6, 7);
$suma=0;
//mnożymy każdą z cyfer po kolei przez kolejne wagi o sumujemy
for ($i = 0; $i &lt; 9; $i++)
{
$suma += $wagi[$i] * $nip[$i];
}
//obliczamy resztę z dzielenia przez 11
$reszta = $suma % 11;
//sprawdzamy czy suma kontrolna się zgadza
$sumakontrolna=($reszta == 10)?0:$reszta;
if ($sumakontrolna == $nip[9])
{
return true;
}
return false;
}
?&gt;</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.siec.com.pl/funkcja-sprawdzajaca-poprawnosc-nip-w-php.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Operacje na datach w PHP</title>
		<link>http://www.siec.com.pl/operacje-na-datach-w-php.html</link>
		<comments>http://www.siec.com.pl/operacje-na-datach-w-php.html#comments</comments>
		<pubDate>Mon, 15 Mar 2010 12:19:26 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Porady i rozwiązania]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.wisnia.izg.pl/?p=52</guid>
		<description><![CDATA[Operacje na datach w skryptach PHP najlepiej, naszybciej i najbezpieczniej wykonywać już po stronie MySQL&#8217;a, jednak jeżeli nie jest to możliwe, do pomocy przychodzą nam wbudowane w język PHP funkcje, które ułatwią nam te operacje: strtotime() i date(). &#60;?php $data = '2010-01-01'; $data = strtotime($data); $data = strtotime('+2 year, +1 days', $data); ?&#62; Chcemy do zmiennej $data [...]]]></description>
			<content:encoded><![CDATA[<p>Operacje na datach w skryptach PHP najlepiej, naszybciej i najbezpieczniej wykonywać już po stronie MySQL&#8217;a, jednak jeżeli nie jest to możliwe, do pomocy przychodzą nam wbudowane w język PHP funkcje, które ułatwią nam te operacje: <strong>strtotime()</strong> i <strong>date()</strong>.</p>
<p><span id="more-52"></span></p>
<p><code>&lt;?php<br />
$data = '2010-01-01';<br />
$data = strtotime($data);<br />
$data = strtotime('+2 year, +1 days', $data);<br />
?&gt;</code></p>
<p>Chcemy do zmiennej $data dodać 2 lata i 1 dzień. Najpierw zamieniamy zmienna $data na unixowy znacznik czasu, później wykonujemy operacje na unixowym znaczniku czasu dodawania (2 lata i jeden dzień). No i pod zmienną data mamy już właściwy wyniki, jednak zapisany w formacie unixowego znacznika czasu. Tutaj nam przychodzi z pomocą funkcja data(), która ma na celu przeformatowanie daty z unixowego znacznika czasu, na takie format jaki chcemy.</p>
<p><code>&lt;?php<br />
echo date('Y-m-d', $data);<br />
?&gt;</code></p>
<p>W funkcji tej podajemy format w jakim ma być wyświetlona data, jak również zmienną, którą chcemy przeformatować (czyli ta naszą data w formacie unixowego znacznika czasu. Wynikiem kodu wykonanego powyżej będzie: <strong>2012-01-02</strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.siec.com.pl/operacje-na-datach-w-php.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

