473,624 Members | 2,273 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

check string contents: can be used as var?

is there anyway to check if a string could be used a variable name. So
return false if the first character isn't a letter or if it contains
spaces etc.

I started writing a function that would do a load of tests because I
couldn't see any easier way of doing it:

<?
function is_valid_handle ($str) {
// determines if the string provided can be used as a handle
// such as a php variable or html/css class
if (strlen($str) > 255)) return false;
if (strpos($str,' ')) return false;
// incomplete, needs more tests
return true;
}
?>

but as soon as i realised i would have to use range() to check all the
characters were valid and all that i decided there must be an easier
way. Do you guys know of one or am I just going to have to write it myself?

It was about then I had a great idea maybe if you use the variable
variable syntax you can see if it will return false but unfortunately it
does this:

<?
$foo= '5very @#bad variable name';
$$foo = 'Hi!'; // doesn't cause error
echo $$foo; // outputs Hi!
echo $5very @#bad variable name; // causes an error, obviously
?>

Seems PHP will quite happily let you store data in a variable of
whatever you like. I guess that's a nice feature. So...any ideas?
Oct 18 '05 #1
3 1508
is there anyway to check if a string could be used a variable name. So
return false if the first character isn't a letter or if it contains
spaces etc.


See <http://www.php.net/language.variab les> which provides a regular
expression to validate variabe identifiers.

---
Steve

Oct 18 '05 #2
Oliver Saunders said the following on 18/10/2005 18:21:
is there anyway to check if a string could be used a variable name. So
return false if the first character isn't a letter or if it contains
spaces etc.


Just out of curiosity, why do you want to do this?

--
Oli
Oct 18 '05 #3
> Just out of curiosity, why do you want to do this?
I'm seeing if I can create my own form abstraction classes. When you do
something like this:

$surname = new osisField;
$surname->SetName('surna me');

I want setname to SetName() to be able to check to see if its parameter
can be used as a valid <input name=""> and post variable.

Thinking about it you can use any key for an array can't you. So
$_POST['45##'] is a valid key but then you can't extract() that. (See
test below)

<?
$foo = array('##56' => 'data'); // valid
echo $foo['##56']; // valid
echo extract($foo); // returns 0 variables extracted
echo $bar = '##56';
echo $$bar; // unsurprisingly undefined
?>
Oct 18 '05 #4

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

9
38630
by: Lord Merlin | last post by:
Sorry for the dumb question, but what is the function in ASP to see if an object / string is an integer? I want to check the contents of a form, and if it's an integer, i.e a number, do something, else if it's a word do something else, and I'm not sure howto? --
19
10300
by: Lionel B | last post by:
Greetings, I need to read (unformatted text) from stdin up to EOF into a char buffer; of course I cannot allocate my buffer until I know how much text is available, and I do not know how much text is available until I have read it... which seems to imply that multiple reads of the input stream will be inevitable. Now I can correctly find the number of characters available by: |
8
1521
by: Bob Smith | last post by:
I am downloading over http port 80 some contents froma site, but the contents is not properly stored after using ostringstream for temporary storage, and later ostringstream::str() for passing it over to a string. This doesn't work. It misses data and teh result is not the same as when using char buffer, which gives correct download. Could anyone point out why the ostringstream + string way doesn't work, while the char buffer does? tia...
23
1615
by: John Rivers | last post by:
This shows you how to implement html rendering methods and libraries in ASPX pages. This also means super fast debugging as no re-initialising of IIS is required after editting! This gets around the ridiculous situation of ASPX pages not being allowed to have methods. I am working on a way to do this with classes as well!
1
4227
by: sianan | last post by:
I tried to use the following example, to add a checkbox column to a DataGrid in an ASP.NET application: http://www.codeproject.com/aspnet/datagridcheckbox.asp For some reason, I simply CAN'T get the example to work. I created the following two classes, provided with the example: *-*-**-*-*-*-*-*-*-*-*-*-**-*-*-*-*-CheckBoxColumn Class:-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-**-*-*-*
51
3857
by: moosdau | last post by:
my code: do { printf("please input the dividend and the divisor.\n"); if(!scanf("%d%d",&dend,&dor)) { temp1=1; fflush(stdin); } else
5
28349
by: Paulers | last post by:
Hello all, I have a string array with duplicate elements. I need to create a new string array containing only the unique elements. Is there an easy way to do this? I have tried looping through each element but I am having issues using redim to adjust the new array. Any help or example code would be greatly appreciated. thanks!
15
1807
by: Lighter | last post by:
I find a BIG bug of VS 2005 about string class! #include <iostream> #include <string> using namespace std; string GetStr() { return string("Hello");
3
5087
by: jacob navia | last post by:
Abstract: Continuing the discussion about abstract data types, in this discussion group, a string collection data type is presented, patterned after the collection in C# and similar languages (Java). It stores character strings, and resizes itself to accommodate new strings when needed. Interface: ----------
0
8170
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
8675
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
0
8619
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
1
8334
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
0
8474
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
1
6108
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
5561
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
1
2604
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
1
1784
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.