function sms_valid_get_ruleset_for_number in SMS Framework 6
Same name and namespace in other branches
- 6.2 modules/sms_valid/sms_valid.module \sms_valid_get_ruleset_for_number()
- 7 modules/sms_valid/sms_valid.module \sms_valid_get_ruleset_for_number()
Get the best ruleset for a given phone number
Parameters
$number: A phone number.
Return value
A ruleset array or NULL.
1 call to sms_valid_get_ruleset_for_number()
- sms_valid_validate in modules/
sms_valid/ sms_valid.module - Validate a number
File
- modules/
sms_valid/ sms_valid.module, line 183 - Number validation feature module for Drupal SMS Framework.
Code
function sms_valid_get_ruleset_for_number($number) {
// Strip all non-digit chars including whitespace
$number = preg_replace('/[^0-9]/', '', $number);
// Make an array of potential prefixes from the given number
for ($i = 0; $i < strlen($number); $i++) {
$potential_prefixes[] = substr($number, 0, $i + 1);
}
// Get the potential rulesets from the DB
$result = db_query("SELECT * FROM {sms_valid_rules} WHERE prefix IN (" . db_placeholders($potential_prefixes, 'int') . ")", $potential_prefixes);
// Choose the ruleset with the best match (most chars = highest prefix)
$best_ruleset = NULL;
$last_prefix = NULL;
while ($row = db_fetch_array($result)) {
if ($row['prefix'] > $last_prefix) {
$best_ruleset = $row;
}
$best_ruleset['rules'] = unserialize($best_ruleset['rules']);
}
return $best_ruleset;
}