function SetRecordKey($RecordNumber, $key) { // $EBAUpdateGramTemp = EBAright($this->XmlStr, strlen($this->XmlStr) - $this->InsertRecords[$RecordNumber]); $EBANextPos = strpos($EBAUpdateGramTemp, "xk"); $EBAInsertPos = strpos($this->XmlStr, $EBAUpdateGramTemp); if ($EBANextPos > 0) { $EBAUpdateGramWithKey = substr_replace($EBAUpdateGramTemp, "xk=\"" . $key . "\"", $EBANextPos, 5); $this->XmlStr = substr_replace($this->XmlStr, $EBAUpdateGramWithKey, $EBAInsertPos); } }
function ProcessRecords() { $postData = $GLOBALS["HTTP_RAW_POST_DATA"]; # Populate EBAGetHandler_Fields with the fields names $EBAUpdategram = $postData; $ParsePos = 0; if (strlen($EBAUpdategram) > 5) { $ParsePos = strpos(strtolower($EBAUpdategram), "fields"); $ParsePos = strpos(EBAright($EBAUpdategram, strlen($EBAUpdategram) - $ParsePos), "\"") + 7; $EBAUpdategram = EBAright($EBAUpdategram, strlen($EBAUpdategram) - $ParsePos); #Begin grabbing fields $EBANextPos = 0; $EBAFieldName = ""; do { $EBANextPos = strpos($EBAUpdategram, "|"); $EBANextPos = min($EBANextPos, strpos($EBAUpdategram, "\"")); if ($EBANextPos > 0) { $EBAFieldName = EBAleft($EBAUpdategram, $EBANextPos); $EBAUpdategram = EBAright($EBAUpdategram, strlen($EBAUpdategram) - $EBANextPos - 1); $this->Fields[$this->FieldsCount] = $EBAFieldName; $this->FieldsCount += 1; } } while ($EBANextPos > 0); $EBANextPos = strpos($EBAUpdategram, "\""); if ($EBANextPos > 0) { $EBAFieldName = EBAleft($EBAUpdategram, $EBANextPos); $EBAUpdategram = EBAright($EBAUpdategram, strlen($EBAUpdategram) - $EBANextPos - 1); $this->Fields[$this->FieldsCount] = $EBAFieldName; $this->FieldsCount += 1; } # Now we count the insert instructions $EBAUpdategram = $postData; $EBAUpdateGramTemp = $EBAUpdategram; $EBATotalCount = 0; do { $EBANextPos = strpos($EBAUpdateGramTemp, "<insert"); if ($EBANextPos > 0) { $EBATotalCount += $EBANextPos + 1; $this->InsertRecords[$this->InsertCount] = $EBATotalCount; $this->InsertCount += 1; $EBAUpdateGramTemp = EBAright($EBAUpdateGramTemp, strlen($EBAUpdateGramTemp) - $EBANextPos - 1); } } while ($EBANextPos > 0); $EBAUpdateGramTemp = $EBAUpdategram; $EBATotalCount = 0; do { $EBANextPos = strpos($EBAUpdateGramTemp, "<update"); if ($EBANextPos > 0) { $EBATotalCount += $EBANextPos; $this->UpdateRecords[$this->UpdateCount] = $EBATotalCount; $this->UpdateCount += 1; $EBAUpdateGramTemp = EBAright($EBAUpdateGramTemp, strlen($EBAUpdateGramTemp) - $EBANextPos - 1); } } while ($EBANextPos > 0); $EBAUpdateGramTemp = $EBAUpdategram; $EBATotalCount = 0; do { $EBANextPos = strpos($EBAUpdateGramTemp, "<delete"); if ($EBANextPos > 0) { $EBATotalCount += $EBANextPos; $this->DeleteRecords[$this->DeleteCount] = $EBATotalCount; $this->DeleteCount += 1; $EBAUpdateGramTemp = EBAright($EBAUpdateGramTemp, strlen($EBAUpdateGramTemp) - $EBANextPos - 1); } } while ($EBANextPos > 0); $EBAFieldOrder = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'); $MainSetCounter = 0; for ($index = 0; $index < 26; $index += 1) { $this->FieldsSet[$index] = $EBAFieldOrder[$index]; $MainSetCounter += 1; } for ($index = 0; $index < 26; $index += 1) { for ($subIndex = 0; $subIndex < 26; $subIndex += 1) { $this->FieldsSet[$MainSetCounter] = $EBAFieldOrder[$index] . $EBAFieldOrder[$subIndex]; $MainSetCounter += 1; } } } else { print "No valid EBA updategram was discovered!"; } }