summaryrefslogtreecommitdiff
path: root/includes/common.inc
diff options
context:
space:
mode:
authorKjartan Mannes <kjartan@2.no-reply.drupal.org>2001-06-24 18:33:13 +0000
committerKjartan Mannes <kjartan@2.no-reply.drupal.org>2001-06-24 18:33:13 +0000
commit338130736750ab090a49b67130d3642a79195617 (patch)
tree06543fd9197f09541ab680677992795d494129e2 /includes/common.inc
parent0743b2cdbc9c0ede11ff6d9b69f6f4806b4c8702 (diff)
downloadbrdo-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.inc30
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) {