Archive

Posts Tagged ‘PHP’

Използване на php функции в javascript

April 14th, 2009 1 comment

Мислили ли сте някога че възможно да използвате base64_encode / decode , count, explode, file_get_contents, fopen и много други в javascript?
Е това вече е възможно с PHP.JS , а това е пълния списък на функциите.

PHP тестове за опитимизация

February 10th, 2009 No comments

Вчера от някъде ми попаднаха 40 съвета за оптимизране на PHP код, реших да направя някои тестове и да проверя дали това което казват е вярно :D

1. Не използвайте @ пред функция, резултати от тестовете:
създадох един малък масив и пред print_r добавих @:

със @:

Array
(
[3] => 1
[4] => 4
[5] => 1
[6] => 8
[7] => 9
[1] => 14
)
Exec Time: 0.0355
Memory Usage: 1044

без @:

Array
(
[3] => 1
[4] => 4
[5] => 1
[6] => 8
[7] => 9
[1] => 14
)
Exec Time: 0.0282
Memory Usage: 952

II. Номер 2 е проверка дължината на стринг, изпълнението на strlen забавя изпълнението на кода:

if (strlen($foo) < 5) { echo "Foo is too short"; }

Foo is too short
Exec Time: 0.0521
Memory Usage: 932

if (!isset($foo{5})) { echo “Foo is too short”; }

Foo is too short
Exec Time: 0.0009
Memory Usage: 816

Стриктна проверка

January 21st, 2009 No comments

Е на това му се вика “яка” проверка:

<?php
 if ($value == NULL) {
    $value=0;
 }
 if ($value == "") {
    $value=0;
 }
 if ($value == null) {
    $value=0;
 }
 if ($value == "null") {
    $value=0;
 }
 if (!$value) {$value=0;}
?>
Categories: Fun, IT, PHP, Уеб Tags: , , ,

Премахване на PHPSESSID

April 16th, 2008 1 comment

Премахването на PHPSESSID от линковете по страницата става по следния начин.
В .htaccess:

php_flag session.use_trans_sid off

или

php_value session.use_only_cookies 1
php_value session.use_trans_sid 0

В php код:

ini_set('session.use_trans_sid', false);

Като трябва да бъде преди session_start();

Categories: Apache, PHP Tags: , , ,

PHP redirect

April 3rd, 2008 1 comment

Случвало ли ви се е да ползвате:

header('Location: http://google.com/');

и в този момента да ви се отговори:

Cannot modify header information – headers already sent by …

и тогава се налага да го заменяте с meta redirect или някакъв redirect с javascript, а също и ob_start(); ob_end_flush(); което си е дразнещо.

Ето една алтернатива:

<?php
 
function redirect($url){
   if (!headers_sent()){
     header('Location: '.$url);
   } else {
     echo '<script type="text/javascript">';
     echo 'window.location.href="'.$url.'";';
     echo '</script>';
     echo '<noscript>';
     echo '<meta http-equiv="refresh" content="0;url='.$url.'" />';
     echo '</noscript>';
  }
}
 
?>

Тази функция проверява дали са изпратени header-ите, ако не са redirect-ва с PHP функцията “header”, ако са изпратени вече redirect-a се прави с javascript, а ако по някаква случайност потребителя няма support на javascript, redirect-a става с meta refresh на HTML

За тези които умуват още, ползва се така:

redirect('http://google.com/');
Categories: HTML, JavaScript, PHP Tags: ,