Navigation Home / Tags / PHP

ranking Sort Sort   |   date Sort Sort   |   member Sort Sort
Syndication

« Previous 1 2 3 4 5 6 7 8 9  ...  12 13 Next »
5
Date Submitted Thu. Sep. 27th, 2007 8:02 AM
Revision 1
Helper Fordiman
Tags JavaScript | PHP | Prototype | serialize
Comments 2 comments
This is the final version of my Javascript serializer targetted at PHP.

The point:
Objects are most easily passed over the network as serialized strings. Between serialization and unserialization, serialization is by far the easier of the two. Since object passing can sometimes be a process-hungry thing, we want to do things as quickly as possible.

My solution is to always do the hard part in compiled code, while doing the easy part in script. That is, whichever way you're passing an Object, you want to pass it in a natively decoded format for the target.

Since I work mostly in PHP, this meant writing a module that would be able to generate a string that can be decoded with PHP's unserialize() function into a PHP Associative Array (or other applicable type).

Notes:
This lib REQUIRES the Prototype lib. You can hack prototype out of it, of course (by replacing the references to Object.extend() with explicit assignments), but I can't imagine why you'd want to bother; it's used mostly with Ajax.Request anyway.

Previous versions of this code would add the .toPHP() member to the Object prototype. After trying to enumerate things, I found that this is a REALLY bad thing to do, as toPHP springs up where it's not wanted in ALL objects. As a result, I've opted to go the Prototype route and apply it as a member of the Object object.

Please note that if you pass a serialized string to PHP via GET or POST, you'll need to stripslashes() before unserialization.



Javascript sample of use:

var myObject = {
name:'value',
test:['Array','of','strings'],
bool:false,
timestamp: new Date(),
float: 3.1415926539,
number: 42,
func: function () {
alert('Member functions are always omitted from serialization');
}
}
alert(Object.toPHP(myObject));

Output:
a:7:{s:4:"name";s:5:"value";s:4:"test";a:3:{i:0;s:5:"Array";i:1;s:2:"of";i:2;s:7:"strings";}s:4:"bool";b:0;s:9:"timestamp";i:1190897619824;s:5:"float";d:3.1415926539;s:6:"number";i:42;s:4:"func";null}


Sample of subsequent unserialization in PHP (passed via POST as 'myobject')

$myObject=unserialize(stripslashes($_POST['myobject']));
var_dump($myObject);

Output:
array(7) {
["name"]=>
string(5) "value"
["test"]=>
array(3) {
[0]=>
string(5) "Array"
[1]=>
string(2) "of"
[2]=>
string(7) "strings"
}
["bool"]=>
bool(false)
["timestamp"]=>
int(1192296601)
["float"]=>
float(3.1415926539)
["number"]=>
int(42)
["func"]=>
NULL
}
5
Date Submitted Wed. Oct. 11th, 2006 4:34 AM
Revision 1
Beginner wlasson
Tags PHP
Comments 7 comments
This is a state list I made for a website. I kept it just in case i ever needed it again, which i have. I figured it would probably help someone else out.

It includes all states in the U.S.
5
Date Submitted Thu. Oct. 12th, 2006 3:34 PM
Revision 1
Beginner ammonkc
Tags PHP
Comments 0 comments
function that builds select boxes for the month,day,and year. It will default to mmddyyyy, current date, or specified date depending on the parameters.
5
Date Submitted Sun. Oct. 22nd, 2006 5:21 AM
Revision 1
Beginner kiefpiet
Tags PHP
Comments 1 comments
Open a text file and format it (word wrap).
5
Date Submitted Mon. Oct. 22nd, 2007 8:43 AM
Revision 1
Beginner richard123
Tags JavaScript | PHP | resolution
Comments 3 comments
This detects screen resolution using javascript and makes it available to php by way of cookies.
5
Date Submitted Fri. Oct. 21st, 2005 9:52 AM
Revision 1
Coder mattrmiller
Tags PHP | Random | String
Comments 1 comments
Random String
6
Date Submitted Mon. Feb. 12th, 2007 7:00 PM
Revision 1
Helper snowdonkey
Tags "hits counter" | cookies | PHP
Comments 2 comments
A simple page hits counter that uses a single cookie to tell the user how many times they have visited the page.
6
Date Submitted Thu. Mar. 1st, 2007 3:45 PM
Revision 1
Helper mjlintz
Tags PHP
Comments 1 comments
Pull items from a mysql db table and display in the following format-
item1, item2, item3

In the example code, the query will return all items that have the color "red" specified in the db.
6
Date Submitted Mon. Jun. 4th, 2007 3:06 PM
Revision 1
Helper Fordiman
Tags "object passing" | JavaScript | PHP | serialize
Comments 6 comments
This is a quick set of overrides for Javascript so that any variable can be passed to PHP in a GET/POST activity. Just call myVar.toPHP();

I use this little set of functions extensively in a little Javascript/PHP RPC handler I wrote. I don't have the reverse function, as I pass JSON back to the browser for the return value.

Note: This lib is not safe for binaries or HTML Elements. The former will come out similar to FTP ASCII breaks, and the latter will cause infinite recursion. If you want to make a speical case for HTML Elements, do so; you could probably just test for parentNode and create a 'safe' object from that. I didn't need it, so I didn't code it.

As for binary safety, at some point between toPHP/escape/post/urldecode/unserialize, the object breaks. Rather than create a huge fix for something I didn't need to do, I put in a quick match/hack. Don't like it? Write the fix yourself.
6
Date Submitted Sun. Oct. 22nd, 2006 5:34 AM
Revision 1
Beginner kiefpiet
Tags PHP | upload
Comments 2 comments
Simple file upload script.
« Previous 1 2 3 4 5 6 7 8 9  ...  12 13 Next »