|
session_encode
Encodes the current session data as a string
(PHP 4, PHP 5)
Related Examples ( Source code ) » session_encode Examples ( Source code ) » Encoding Data Examples ( Source code ) » Initiate session and create a few session variables Examples ( Source code ) » Registering an Array Variable with a Session Code Examples / Notes » session_encode
session_encode() just return the session dataset in a formatted form session_start(); $_SESSION['login_ok'] = true; $_SESSION['nome'] = 'sica'; $_SESSION['inteiro'] = 34; echo session_encode(); this code will print login_ok|b:1;nome|s:4:"sica";inteiro|i:34; php
If anybody wants to encode any arbitrary array in the session serialization style, I have come up with the following function ( along with a corresponding decoding function in the session_decode notes ) to do just that. Note the step I take to make sure we are not using a reference of the array, because calling session_raw_encode( $_SESSION ) ; will modify the real session when doing the recursion checks. <?php function session_raw_encode( $array, $safe = true ) { // the session is passed as refernece, even if you dont want it to if( $safe ) $array = unserialize(serialize( $array )) ; $raw = '' ; $line = 0 ; $keys = array_keys( $array ) ; foreach( $keys as $key ) { $value = $array[ $key ] ; $line ++ ; $raw .= $key .'|' ; if( is_array( $value ) && isset( $value['huge_recursion_blocker_we_hope'] )) { $raw .= 'R:'. $value['huge_recursion_blocker_we_hope'] . ';' ; } else { $raw .= serialize( $value ) ; } $array[$key] = Array( 'huge_recursion_blocker_we_hope' => $line ) ; } return $raw ; } ?> onur yerlikaya < http://www.witkey.org >
<?php session_start(); # boolean type $_SESSION['logged'] = true; # string type $_SESSION['name'] = "Onur Yerlikaya"; # integer type $_SESSION['age'] = 17; // logged|b:1;name|s:14:"Onur Yerlikaya";age|i:17; function readSessions() { $encodedData = session_encode(); $explodeIt = explode(";",$encodedData); for($i=0;$i<count($explodeIt)-1;$i++) { $sessGet = explode("|",$explodeIt[$i]); $sessName[$i] = $sessGet[0]; if(substr($sessGet[1],0,2) == "s:") { $sessData[$i] = str_replace("\"","",strstr($sessGet[1],"\"")); } else { $sessData[$i] = substr($sessGet[1],2); } // end if } // end for $result = array_combine($sessName,$sessData); return $result; } /* readSessions Func shows encoded data in array Array ( [logged] => 1 [name] => Onur Yerlikaya [age] => 17 ) */ print_r(readSessions()); ?> |
Change Languagesession_cache_expire session_cache_limiter session_commit session_decode session_destroy session_encode session_get_cookie_params session_id session_is_registered session_module_name session_name session_regenerate_id session_register session_save_path session_set_cookie_params session_set_save_handler session_start session_unregister session_unset session_write_close |