Archive

Posts Tagged ‘PHP’

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

April 14th, 2009 Venelin Kochev 1 comment

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

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

February 10th, 2009 Venelin Kochev 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 Venelin Kochev 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 Venelin Kochev 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 Venelin Kochev 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: ,