Мислили ли сте някога че възможно да използвате base64_encode / decode , count, explode, file_get_contents, fopen и много други в javascript?
Е това вече е възможно с PHP.JS , а това е пълния списък на функциите.
Categories: IT, JavaScript, PHP, Интернет Tags: base64_decode, base64_encode, count, explode, file_get_contents, fopen, javascript. function, PHP
Вчера от някъде ми попаднаха 40 съвета за оптимизране на PHP код, реших да направя някои тестове и да проверя дали това което казват е вярно
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
Е на това му се вика “яка” проверка:
<?php
if ($value == NULL) {
$value=0;
}
if ($value == "") {
$value=0;
}
if ($value == null) {
$value=0;
}
if ($value == "null") {
$value=0;
}
if (!$value) {$value=0;}
?>
Премахването на 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();
Случвало ли ви се е да ползвате:
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/');