Tag: parse_url

  • PHP: Reading $_GET variable

    在 PHP 環境下要取得 GET 變數的內容只要用 $_GET 就可以取得,不過在 CodeIgniter Framework 或其他特殊環境下,$_GET 預設是被關掉的時候,想要正常使用 GET (如 AJAX) 時就得費一點點工夫了。 <?php $url_segs = parse_url($_SERVER[‘REQUEST_URI’]); parse_str($url_segs[‘query’], $_GET); // urldecode automatically print_r($_GET); // 印出 $_GET 內容 ?> 完工,就醬。  updated Feb 1, 2012 後來才注意到 CI 的 config.php 大約在 157 行的地方有一行設定 $config[‘allow_get_array’]        = TRUE; 預設打開了 $_GET,不需要用上述的方法,改用 $this->input->get() 即可取得 $_GET 內容。

  • PHP: Using explode() with seperator "\n"

    有個以 PHP 開發的案子在測試階段回報有 bug,雖然兇手不是我,但還是去了解一下。原來的程式是讓使用者輸入多個 Youtube 影片網址,然後由程式取出每一支影片的 uid,封裝成陣列後回傳。之後的程式會取出 uid,然後在網站上 show 出 Youtube 影片。不過當使用者輸出多支影片的網址後,只有最後一支影片會出現,前面的都錯誤了。 原程式是這樣寫的… <?php //使用者輸入的影片網址. http://後面空一格是避免Wordpress把影片顯示出來 $youtube = <<<EOF http:// www.youtube.com/watch?v=SAIEamakLoY http:// www.youtube.com/watch?v=MhVp9gcxLJY http:// www.youtube.com/watch?v=OxzucwjFEEs EOF; function get_youtube_hash($youtube){ $hash = array(); $youtube = explode(“\n”, $youtube); foreach($youtube as $y){ $youtube_qs = parse_url($y, PHP_URL_QUERY); $youtube_qv = explode(‘&’, $youtube_qs); foreach($youtube_qv as $key => $value){ list($k, $v) = explode(‘=’,…