JSON

11個GOOGLE提供初學者必學的PHP小技巧 受用無窮

字号+ 作者:H5之家 来源:H5之家 2016-04-23 18:00 我要评论( )

11個GOOGLE提供初學者必學的PHP小技巧 受用無窮 1.使用echo代替print echo $str; 2.取代字串使用preg_replace性能開銷很大,除非需要正則表達式,否則使用str_replace。 3.不要使用short tags,養成寫成 ?php 比 ? 好很多。 4.在header重定向之後要記得多寫

11個GOOGLE提供初學者必學的PHP小技巧 受用無窮

1.使用echo代替print

echo $str;

2.取代字串使用preg_replace性能開銷很大,除非需要正則表達式,否則使用str_replace。
3.不要使用short tags,養成寫成 <?php 比 <? 好很多。
4.在header重定向之後要記得多寫一個 exit;
5.千萬不要把函數調用放到for 循環控制行中。

6.善用json_encode

很多時候需要拋接資料給前台JS使用,
這個時候使用PHP內建函數是最簡潔、正確不過了

<?php

$arr = array('a' => 1, 'web' => 'google.com', 'c' => 3, 'd' => 4, 'e' => 5);
echo json_encode($arr);

//輸出 {"a":1,"web": "google.com","c":3,"d":4,"e":5}

// json_encode 處理UTF-8 字元
$array = array('name'=>'WEição','coolweb'=>'Wão WEGOLDS');
$array = array_map('htmlentities',$array);

//encode
echo html_entity_decode(json_encode($array));

//Output: {"name":"WEição","coolweb":"Wão WEGOLDS"}

?>


HTML前端該如何接收PHP傳來的JSON值呢?

方式1:

<script type="text/javascript">
// pass PHP variable declared above to JavaScript variable
var ar = <?php echo json_encode($json) ?>;
</script>


方式2:

<script type="text/javascript">
$.ajax({     
      url: "json.php",     
      type: "GET",     
      dataType: "json",     
      success: function(json) {     
        }     
});
</script>



7.表單提交後的提交按鈕檢查方法

一般都會使用以下這樣來觸發,但注意submit的名稱會因為不同語言而不是"Save"。

if($_POST['submit'] == 'Save')
{
    //Save the things
}


所以改寫如下:

if( $_SERVER['REQUEST_METHOD'] == 'POST' and isset($_POST['submit']) )
{
    //Save the things
}



8.使用array_map快速處理array陣列

例如,需要把字串移除前方空白trim,一般新手會使用:

foreach($arr as $c => $v)
{
    $arr[$c] = trim($v);
}


不過可以使用array_map變得更整潔:

$arr = array_map('trim' , $arr);


9.強制類型檢查

$amount = intval( $_GET['amount'] );
$rate = (int) $_GET['rate'];

這是一種好習慣。


10.不要使用相對路徑,要定義一個根路徑

很常見這樣的寫法:

<?php
require('../../lib/class1.php');
require('../../lib/class2.php');
require('../../lib/class3.php');


這種方法有很多缺點:
首先搜索php包括路徑中的指定目錄,然後查看當前目錄。因此,會檢查許多目錄。
當一個腳本被包含在另一個腳本的不同目錄中時,它的基本目錄變為包含腳本的目錄。
另一個問題是,當一個腳本從cron運行時,它可能不會將它的父目錄作為工作目錄。

其實你可以這樣:
先定義一個根路徑位置,之後都一律使用此路徑。


define('ROOT' , '/var/www/project/');
require_once(ROOT . 'lib/class1.php');
require_once(ROOT . 'lib/class2.php');
require_once(ROOT . 'lib/class3.php');


但是,如果專案更改目錄,不就要重置根目錄名稱嗎?
太麻煩了,請使用魔術常量__FILE__可以讓它變得更加靈活。

define('ROOT' , pathinfo(__FILE__, PATHINFO_DIRNAME));
require_once(ROOT . 'lib/class1.php');


這樣即使將專案轉移到一個不同的目錄,這些代碼不需要更改就可以運行。

11.加速ECHO輸出

使用緩衝,在一個地方收集所有輸出內容,然後一次性輸出給瀏覽器
這就是所謂的輸出緩衝。比方說,從不同的函數得到像這樣的內容:

function print_header()
{
    echo "<div>webgolds.google.com 頂端</div>";
}

function print_footer()
{
    echo "<div>尾巴</div>";
}

print_header();
for($i = 0 ; $i < 100; $i++)
{
    echo "I is : $i <br />';
}
print_footer();



其實應該先在一個地方收集所有輸出。先將它儲存在函數中的變量內部。或是使用ob_start和ob_end_clean。
PHP 面試考古題收集

function print_header()
{
    $o = "<div>webgolds.com 頂端</div>";
    return $o;
}

function print_footer()
{
    $o = "<div>尾巴</div>";
    return $o;
}

echo print_header();
for($i = 0 ; $i < 100; $i++)
{
    echo "I is : $i <br />';
}
echo print_footer();


 

Posted : / Views: 43

相關連結:



 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 对Json进行处理的Google Gson API教程

    对Json进行处理的Google Gson API教程

    2015-11-23 15:47

  • 基于ol2实现百度地图abcd marker的效果

    基于ol2实现百度地图abcd marker的效果

    2015-11-18 14:06

  • 【Google开源深度学习库TensorFlow】 (转载)

    【Google开源深度学习库TensorFlow】 (转载)

    2015-11-10 16:45

  • 使用 Google Web Toolkit 和 JSON 开发 Ajax 应用程序

    使用 Google Web Toolkit 和 JSON 开发 Ajax 应用程序

    2015-10-31 19:05

网友点评
3