DZone Snippets is a public source code repository. Easily build up your personal collection of code snippets, categorize them with tags / keywords, and share them with the world

Snippets

  • submit to reddit

Recent Snippets

                    
REReplaceNoCase(string,"<[^>]*>","","ALL")
                
                    PHP function Singleton allows you holding exactly one object of a class in memory. If an object of a given class doesn't exist, Singleton will create and store a new one in static array singleton. It then (and otherwise) will return a reference to it.

Adding an optional ID allows holding more than one object a class. Assigned ID will distinguish array keys.

/**
 * Singleton Repository
 * @param string $class PHP Class Name
 * @param string $id Optional Object ID
 * @return reference Reference to existing Object
 */
function &Singleton($class, $id='') {
  static $singleton = array();
  if (!array_key_exists($class.$id, $singleton))
    $singleton[$class.$id] = &new $class();
  $reference = &$singleton[$class.$id];
  return $reference;
}

Use like this:
[edit] I'm sorry there was a mistake in the first exmaple for three days or so. Fixed.
# first call: create object
$site_user=&Singleton('Student');
$site_user->Drink_Beer(5);

# second call: get a reference
$current_user=&Singleton('Student');
echo $current_user->Show_Beers_Counter();
#will be 5

#Two different objects
$one=&Singleton('Some_Class','one');
$two=&Singleton('Some_Class','two');

Works fine with PHP4, not tested on PHP5                
                    I create a batch file (w.bat) containing just
wget -krmnp %1

Then I call
C:\>w [what-ever-url]
                
                    Current python for series 60 (version 1) doesn't support graphics drawing on screen. But it still allows you to open an image file or other content file using external content handler. Here is the short and shorter versions to demonstrate.

# this version wait for external app to exit, then it continue.
import e32
lock = e32.Ao_lock()
handler = appuifw.Content_handler(lock.signal)
hander.open(filename)  # eg. an image file
lock.wait()	# wait for lock.signal to unlock

# this is a short, one-line version which doesn't wait
appuifw.Content_handler().open(filename)
                
                    
import shutil
shutil.copyfile(source, destination)
                
                    Python for series 60 enables many fun bluetooth stuff.
from socket import *
a = '00:10:60:ab:25:6f'
bt_obex_discover(a)	# found at port 3
f = u'C:\\Nokia\\Startermonlog.txt'
bt_obex_send_file(a, 3, f)
                
                    
>>> import e32
>>> e32.start_exe('z:\\system\\programs\\apprun.exe', 'z:\\system\\apps\\camcorder\\camcorder.app')

Another method would be opening a file in its 'Content_handler'.                
                    DBMS is the native format for database on symbian platform.
Python for series 60 provide a 'e32db' module to access dbms.
import e32db
db = e32db.Dbms()
dbv = e32db.Db_view()
db.open(u'C:\\System\\Data\\Contacts.cdb ')  # open database file

# search and retrieve from a row
def select_row(query):
  dbv.prepare(db, unicode(query))
  dbv.first_line()
  dbv.get_line()
  result = []
  for i in range(dbv.col_count()):
    result.append(dbv.col(i+1))
  return result

# search and retrieve from a column
def select_col(query):
  dbv.prepare(db, unicode(query))
  dbv.first_line()
  result = []
  for i in range(dbv.count_line()):
    dbv.get_line()
    result.append(dbv.col(1))
    dbv.next_line()
  return result

# now it's quite easy to query anything, for example
# get the id of my friend "Jakapong"
id, = select_row("select parent_cmid from identitytable where cm_firstname='Jakapong' ")

I show more example here at nokia forum.
http://discussion.forum.nokia.com/forum/showthread.php?threadid=55674
                
                    Convert a byte string into a Unicode string and back again.
s = "hello normal string"
u = unicode(s, "utf-8")
backToBytes = u.encode("utf-8")
For Thai, python uses cp874 encoding.
s = ''    # my thai name
t = s.decode('cp874')  # same as unicode(..)
appuifw.note(t, 'info')
                
                    I use CiteULike (http://citeulike.org) to manage papers a lot.
Unfortunately, I don't have access to paid site. But some authors
are generous enough to put pdf on his own site, which I find
using google search.
javascript:(function(){
var title = document.title.substring(11);
var query = '%22' + title + '%22 ' + 'filetype:pdf';
var url = 'http://www.google.com/search?q=' + encodeURI(query);
window.open(url);
})();

It simply takes the paper title from windows title. Then it searches the title(enclosed in quotation) for pdf files of the same name.