diff options
author | Kjartan Mannes <kjartan@2.no-reply.drupal.org> | 2001-06-24 18:33:13 +0000 |
---|---|---|
committer | Kjartan Mannes <kjartan@2.no-reply.drupal.org> | 2001-06-24 18:33:13 +0000 |
commit | 338130736750ab090a49b67130d3642a79195617 (patch) | |
tree | 06543fd9197f09541ab680677992795d494129e2 /includes/common.inc | |
parent | 0743b2cdbc9c0ede11ff6d9b69f6f4806b4c8702 (diff) | |
download | brdo-338130736750ab090a49b67130d3642a79195617.tar.gz brdo-338130736750ab090a49b67130d3642a79195617.tar.bz2 |
- Changed field_get/set() to be more efficent.
Diffstat (limited to 'includes/common.inc')
-rw-r--r-- | includes/common.inc | 30 |
1 files changed, 5 insertions, 25 deletions
diff --git a/includes/common.inc b/includes/common.inc index a89d71576..a5b82357c 100644 --- a/includes/common.inc +++ b/includes/common.inc @@ -191,34 +191,14 @@ function form_submit($value) { } function field_get($string, $name) { - foreach (explode(",", $string) as $data) { - $entry = explode("=", $data); - if ($entry[0] == $name) return $entry[1]; - } + ereg(",$name=([^,]+)", ",$string", $regs); + return $regs[1]; } function field_set($string, $name, $value) { - if (!$value) { - // remove entry: - foreach (explode(",", $string) as $data) { - $entry = explode("=", $data); - if ($entry[0] != $name) $rval .= "$entry[0]=$entry[1],"; - } - } - else if (strstr($string, "$name=")) { - // found: update exsisting entry: - foreach (explode(",", $string) as $data) { - $entry = explode("=", $data); - if ($entry[0] == $name) $entry[1] = $value; - $rval .= "$entry[0]=$entry[1],"; - } - } - else { - // not found: - $rval = "$string$name=$value,"; - } - - return $rval; + $rval = ereg_replace(",$name=[^,]+", "", ",$string"); + if ($value) $rval .= ($rval == "," ? "" : ",") ."$name=$value"; + return substr($rval, 1); } function field_merge($a, $b) { |