Ok, not terribly appropos to the mailing list, but I have to share: http://www2.latech.edu/~acm/HelloWorld.shtml http://c2.com/cgi/wiki?HelloWorldInManyProgrammingLanguages http://www.roesler-ac.de/wolfram/hello.htm For those interested in arcanum. -TG > -----Original Message----- > From: Charles P. Killmer [mailto:charlesk@xxxxxxxxxxxxxxxxxxxxx] > Sent: Thursday, May 20, 2004 11:17 AM > To: php-windows@xxxxxxxxxxxxx > Subject: RE: Passing +, =, - at post and get > > > You may appreciate this then. Its been floating around for a while so > you may have seen it but I think it is funny and strangely true. > > The Evolution of a Programmer > > > > High School/Jr.High > > 10 PRINT "HELLO WORLD" > 20 END > > > First year in College > program Hello(input, output) > begin > writeln('Hello World') > end. > > > Senior year in College > (defun hello > (print > (cons 'Hello (list 'World)))) > > > New professional > #include <stdio.h> > void main(void) > { > char *message[] = {"Hello ", "World"}; > int i; > > for(i = 0; i < 2; ++i) > printf("%s", message[i]); > printf("\n"); > } > > > Seasoned professional > #include <iostream.h> > #include <string.h> > > class string > { > private: > int size; > char *ptr; > > public: > string() : size(0), ptr(new char('\0')) {} > > string(const string &s) : size(s.size) > { > ptr = new char[size + 1]; > strcpy(ptr, s.ptr); > } > > ~string() > { > delete [] ptr; > } > > friend ostream &operator <<(ostream &, const string &); > string &operator=(const char *); > }; > > ostream &operator<<(ostream &stream, const string &s) > { > return(stream << s.ptr); > } > > string &string::operator=(const char *chrs) > { > if (this != &chrs) > { > delete [] ptr; > size = strlen(chrs); > ptr = new char[size + 1]; > strcpy(ptr, chrs); > } > return(*this); > } > > int main() > { > string str; > > str = "Hello World"; > cout << str << endl; > > return(0); > } > > > Master Programmer > [ > uuid(2573F8F4-CFEE-101A-9A9F-00AA00342820) > ] > library LHello > { > // bring in the master library > importlib("actimp.tlb"); > importlib("actexp.tlb"); > > // bring in my interfaces > #include "pshlo.idl" > > [ > uuid(2573F8F5-CFEE-101A-9A9F-00AA00342820) > ] > cotype THello > { > interface IHello; > interface IPersistFile; > }; > }; > > [ > exe, > uuid(2573F890-CFEE-101A-9A9F-00AA00342820) > ] > module CHelloLib > { > > // some code related header files > importheader(<windows.h>); > importheader(<ole2.h>); > importheader(<except.hxx>); > importheader("pshlo.h"); > importheader("shlo.hxx"); > importheader("mycls.hxx"); > > // needed typelibs > importlib("actimp.tlb"); > importlib("actexp.tlb"); > importlib("thlo.tlb"); > > [ > uuid(2573F891-CFEE-101A-9A9F-00AA00342820), > aggregatable > ] > coclass CHello > { > cotype THello; > }; > }; > > > #include "ipfix.hxx" > > extern HANDLE hEvent; > > class CHello : public CHelloBase > { > public: > IPFIX(CLSID_CHello); > > CHello(IUnknown *pUnk); > ~CHello(); > > HRESULT __stdcall PrintSz(LPWSTR pwszString); > > private: > static int cObjRef; > }; > > > #include <windows.h> > #include <ole2.h> > #include <stdio.h> > #include <stdlib.h> > #include "thlo.h" > #include "pshlo.h" > #include "shlo.hxx" > #include "mycls.hxx" > > int CHello::cObjRef = 0; > > CHello::CHello(IUnknown *pUnk) : CHelloBase(pUnk) > { > cObjRef++; > return; > } > > HRESULT __stdcall CHello::PrintSz(LPWSTR pwszString) > { > printf("%ws\n", pwszString); > return(ResultFromScode(S_OK)); > } > > > CHello::~CHello(void) > { > > // when the object count goes to zero, stop the server > cObjRef--; > if( cObjRef == 0 ) > PulseEvent(hEvent); > > return; > } > > #include <windows.h> > #include <ole2.h> > #include "pshlo.h" > #include "shlo.hxx" > #include "mycls.hxx" > > HANDLE hEvent; > > int _cdecl main( > int argc, > char * argv[] > ) { > ULONG ulRef; > DWORD dwRegistration; > CHelloCF *pCF = new CHelloCF(); > > hEvent = CreateEvent(NULL, FALSE, FALSE, NULL); > > // Initialize the OLE libraries > CoInitializeEx(NULL, COINIT_MULTITHREADED); > > CoRegisterClassObject(CLSID_CHello, pCF, CLSCTX_LOCAL_SERVER, > REGCLS_MULTIPLEUSE, &dwRegistration); > > // wait on an event to stop > WaitForSingleObject(hEvent, INFINITE); > > // revoke and release the class object > CoRevokeClassObject(dwRegistration); > ulRef = pCF->Release(); > > // Tell OLE we are going away. > CoUninitialize(); > > return(0); } > > extern CLSID CLSID_CHello; > extern UUID LIBID_CHelloLib; > > CLSID CLSID_CHello = { /* 2573F891-CFEE-101A-9A9F-00AA00342820 */ > 0x2573F891, > 0xCFEE, > 0x101A, > { 0x9A, 0x9F, 0x00, 0xAA, 0x00, 0x34, 0x28, 0x20 } > }; > > UUID LIBID_CHelloLib = { /* 2573F890-CFEE-101A-9A9F-00AA00342820 */ > 0x2573F890, > 0xCFEE, > 0x101A, > { 0x9A, 0x9F, 0x00, 0xAA, 0x00, 0x34, 0x28, 0x20 } > }; > > #include <windows.h> > #include <ole2.h> > #include <stdlib.h> > #include <string.h> > #include <stdio.h> > #include "pshlo.h" > #include "shlo.hxx" > #include "clsid.h" > > int _cdecl main( > int argc, > char * argv[] > ) { > HRESULT hRslt; > IHello *pHello; > ULONG ulCnt; > IMoniker * pmk; > WCHAR wcsT[_MAX_PATH]; > WCHAR wcsPath[2 * _MAX_PATH]; > > // get object path > wcsPath[0] = '\0'; > wcsT[0] = '\0'; > if( argc > 1) { > mbstowcs(wcsPath, argv[1], strlen(argv[1]) + 1); > wcsupr(wcsPath); > } > else { > fprintf(stderr, "Object path must be specified\n"); > return(1); > } > > // get print string > if(argc > 2) > mbstowcs(wcsT, argv[2], strlen(argv[2]) + 1); > else > wcscpy(wcsT, L"Hello World"); > > printf("Linking to object %ws\n", wcsPath); > printf("Text String %ws\n", wcsT); > > // Initialize the OLE libraries > hRslt = CoInitializeEx(NULL, COINIT_MULTITHREADED); > > if(SUCCEEDED(hRslt)) { > > > hRslt = CreateFileMoniker(wcsPath, &pmk); > if(SUCCEEDED(hRslt)) > hRslt = BindMoniker(pmk, 0, IID_IHello, (void **)&pHello); > > if(SUCCEEDED(hRslt)) { > > // print a string out > pHello->PrintSz(wcsT); > > Sleep(2000); > ulCnt = pHello->Release(); > } > else > printf("Failure to connect, status: %lx", hRslt); > > // Tell OLE we are going away. > CoUninitialize(); > } > > return(0); > } > > > > > Apprentice Hacker > #!/usr/local/bin/perl > $msg="Hello, world.\n"; > if ($#ARGV >= 0) { > while(defined($arg=shift(@ARGV))) { > $outfilename = $arg; > open(FILE, ">" . $outfilename) || die "Can't write $arg: $!\n"; > print (FILE $msg); > close(FILE) || die "Can't close $arg: $!\n"; > } > } else { > print ($msg); > } > 1; > > > > > Experienced Hacker > #include <stdio.h> > #define S "Hello, World\n" > main(){exit(printf(S) == strlen(S) ? 0 : 1);} > > > > > Seasoned Hacker > % cc -o a.out ~/src/misc/hw/hw.c > % a.out > > > > > Guru Hacker > % echo "Hello, world." > > > > > New Manager > 10 PRINT "HELLO WORLD" > 20 END > > > > > Middle Manager > mail -s "Hello, world." bob@b12 > Bob, could you please write me a program that prints "Hello, > world."? > I need it by tomorrow. > ^D > > > > > Senior Manager > % zmail jim > I need a "Hello, world." program by this afternoon. > > > > > Chief Executive > % letter > letter: Command not found. > % mail > To: ^X ^F ^C > % help mail > help: Command not found. > % damn! > !: Event unrecognized > % logout > > -------------------------------------------------------------- > ---------- > --------Anonymous > > -----Original Message----- > From: Gryffyn, Trevor [mailto:TGryffyn@xxxxxxxxxxxxxxxxx] > Sent: Thursday, May 20, 2004 10:02 AM > To: php-windows@xxxxxxxxxxxxx > Cc: Charles P. Killmer > Subject: RE: Passing +, =, - at post and get > > Rube Goldberg would appreciate it. > > > -----Original Message----- > > From: Charles P. Killmer [mailto:charlesk@xxxxxxxxxxxxxxxxxxxxx] > > Sent: Thursday, May 20, 2004 11:01 AM > > To: php-windows@xxxxxxxxxxxxx > > Subject: RE: Passing +, =, - at post and get > > > > > > How is this > > $String = implode(explode($String, $OldChar), $NewChar); > different > > than > > $String = str_replace($OldChar, $NewChar, $String); > > > > Charles Killmer > > > > -----Original Message----- > > From: Svensson, B.A.T. (HKG) [mailto:B.A.T.Svensson@xxxxxxx] > > Sent: Thursday, May 20, 2004 9:48 AM > > To: 'php-windows@xxxxxxxxxxxxx ' > > Subject: RE: Passing +, =, - at post and get > > > > In your second if you do a count on the occurence of a > character, but > > don't use the result, why not use strpos() directly? > > > > Also if you just want to replace a single char with another single > > char, then you might like to do like this: > > > > $String = implode(explode($String, $OldChar), $NewChar); > > > > > > > > -----Original Message----- > > From: George Pitcher > > To: php-windows@xxxxxxxxxxxxx > > Sent: 20-5-2004 15:43 > > Subject: RE: Passing +, =, - at post and get > > > > And doing a bit more, I find that '=' and '-' are passing > through OK > > so I'll need to train my users to use an alternative to '+'. > > > > The choking seems to be with my parsing function, which I > have pasted > > in > > below: > > ================================================= > > function sql_fltr($sql,$field,$input){ > > if(strlen($input)>0){ > > if( substr_count($input,"=")>0 | substr_count($input," > > -")>0 | > > substr_count($input," +")>0 ){ > > $output = ""; > > $temp = str_replace(" -","|-",(str_replace(" > > -","|-",($input)))); > > $temp = explode("|",$temp); > > for ($i = 0; $i <= sizeof($temp); $i++){ > > if (substr($temp[$i],0,1)=="*"){ > > $temp[$i] = $field." like > > '".rtrim(str_replace("*","%",$temp[$i]))."%'"; > > $output.= $temp[$i]."|"; > > } elseif (substr($temp[$i],0,1)=="-"){ > > $temp[$i] = " and ".$field." not > > like > > '".rtrim(str_replace("*","%",$temp[$i]))."'"; > > $output.= $temp[$i]."|"; > > } elseif (substr($temp[$i],0,1)=="="){ > > $temp[$i] = " and > > ".$field."='".rtrim(str_replace("=","",$temp[$i]))."'"; > > $output.= $temp[$i]."|"; > > } elseif (substr($temp[$i],0,1)!="+" && > > substr($temp[$i],0,1)!="-"&&substr($temp[$i],0,1)!="*" && > > substr($temp[$i],0,1)!="="){ > > $temp[$i] = "and ".$field." like > > '%".rtrim(str_replace("=","",$temp[$i]))."'"; > > $output.= $temp[$i]."|"; > > } else { > > $temp[$i] = " > > ".$field."='".rtrim($temp[$i])."'"; > > $output.= $temp[$i]."|"; > > } > > } > > $output = " AND > > ".substr($output,0,strlen($output)-1); > > } else { > > $temp = $input; > > if (substr($temp,0,1)=="*"){ > > $temp = $field." like > > '".rtrim(str_replace("*","%",$temp))."'"; > > } elseif (substr($temp,0,1)=="-"){ > > $temp = $field." not like > > '".rtrim(str_replace("*","%",$temp))."'"; > > } elseif (substr($temp,0,1)=="="){ > > $temp = > > $field."='".rtrim(str_replace("=","",$temp))."'"; > > } elseif (substr($temp,0,1)!="+" && > > substr($temp,0,1)!="-"&&substr($temp,0,1)!="*" && > > substr($temp,0,1)!="="){ > > $temp = $field." like > > '%".rtrim(str_replace("=","",$temp))."'"; > > } else { > > $temp = $field."='".rtrim($temp)."'"; > > } > > $output = " AND ".$temp; > > } > > } else { > > $output = ""; > > } > > return $output; > > } > > ================================================= > > This works fine if the user has eneterd either no control or the * > > wildcared with the criteria. > > > > Any suggestions? > > > > Cheers > > > > George > > > > > > > -----Original Message----- > > > From: George Pitcher [mailto:george.pitcher@xxxxxxxxxxx] > > > Sent: 20 May 2004 2:33 pm > > > To: php-windows@xxxxxxxxxxxxx > > > Subject: RE: Passing +, =, - at post and get > > > > > > > > > Charles, > > > > > > No way! This site will only have about 3-4 users as its > an intranet > > > and I'll be parsing everything at the server end. > > > > > > George > > > > > > > > > > -----Original Message----- > > > > From: Charles P. Killmer [mailto:charlesk@xxxxxxxxxxxxxxxxxxxxx] > > > > Sent: 20 May 2004 2:31 pm > > > > To: php-windows@xxxxxxxxxxxxx > > > > Subject: RE: Passing +, =, - at post and get > > > > > > > > > > > > I hope you are not allowing the client to send T-SQL > through the > > query > > > > string. Consider them sending something like > > File.php?Query='; drop > > > > > > table XXX; -- > > > > > > > > Charles Killmer > > > > > > > > -----Original Message----- > > > > From: George Pitcher [mailto:george.pitcher@xxxxxxxxxxx] > > > > Sent: Thursday, May 20, 2004 8:25 AM > > > > To: php-windows@xxxxxxxxxxxxx > > > > Subject: Passing +, =, - at post and get > > > > > > > > Hi, > > > > > > > > I want to be able to pass the '=', '+' and '-' characters > > both from > > a > > > > web form and as part of a url, to enable a better way of > > searching. > > > > However, these characters are choking my IIS webserver and not > > getting > > > > through to the script. > > > > > > > > Can anyone suggest a better way of achieving this? > > > > > > > > Cheers > > > > > > > > George > > > > > > > > -- > > > > PHP Windows Mailing List (http://www.php.net/) To unsubscribe, > > visit: > > > > http://www.php.net/unsub.php > > > > > > > > -- > > > > PHP Windows Mailing List (http://www.php.net/) To unsubscribe, > > > > visit: http://www.php.net/unsub.php > > > > > > > > > > > > > > -- > > > PHP Windows Mailing List (http://www.php.net/) To > > unsubscribe, visit: > > > http://www.php.net/unsub.php > > > > > > > > > > -- > > PHP Windows Mailing List (http://www.php.net/) To > unsubscribe, visit: > > http://www.php.net/unsub.php > > > > -- > > PHP Windows Mailing List (http://www.php.net/) To > unsubscribe, visit: > > http://www.php.net/unsub.php > > > > -- > > PHP Windows Mailing List (http://www.php.net/) To > unsubscribe, visit: > > http://www.php.net/unsub.php > > > > > > -- > PHP Windows Mailing List (http://www.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php > > -- PHP Windows Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php