I have problems cleaning up a couple of input field. I've been pecking away at this issue since I wrote the application about 18 months ago. When I think I have it cleaned up; it pops up again, when users violate rules (as they often will do) and the extra spaces and tabs show up.
I have a form that is filled via Copy from an excel file (this is a requirement) and pasted into the textarea:
<textarea name="header_fields" cols="60" rows="6"><?php if(!empty($error)) {echo $varAllText;} ?></textarea>
When the form is processed, the field is received via the following:
$varAllText = trim($_POST['header_fields']);
list($Supplier_Name, $Booking_Number, $Container_Number, $BOL_Number, $Factory_Departure_Date, $Sailing_Date, $ETA_date ) = $varList = explode("\r\n", $varAllText);
I created a function to clean off the occasional extra spaces, and tabs (the tabs happen when someone violates the excel template and copies one or two extra fileds - the delimeter is the tab)
function stringCleaner($string){
$string2 = preg_replace("/\s+/", "", $string);
return $string2;
}
Then I call it for all three of the critial fields:
$Booking_Number = stringCleaner($Booking_Number);
$Container_Number = stringCleaner($Container_Number);
$BOL_Number = stringCleaner($BOL_Number);
And then just because I'm worried about it, I do one last trim:
$Container_Number = trim($Container_Number);
And yet, I still find that on occasion, I still have the spaces and the tab at the end of the entry
So the bill of lading looks like [MRP14041081 ] instead of [MRP14041081] and the Container Number looks like [ABCD5323970 ] instead of [ABCD5323970]; so when I feed that into the Query to retreive the record, it cannot be found because of the extra characters.
How do I clean up the mess in the string. I've tried (on my own) to trim it, to use regex, and as you see I have not been able to figure out a way to reliably clean up the problem.
Any and all suggestions are greatly appreciated.
Thanks