Categories

See More
Popular Forum

MBA (4887) B.Tech (1769) Engineering (1486) Class 12 (1030) Study Abroad (1004) Computer Science and Engineering (988) Business Management Studies (865) BBA (846) Diploma (746) CAT (651) B.Com (648) B.Sc (643) JEE Mains (618) Mechanical Engineering (574) Exam (525) India (462) Career (452) All Time Q&A (439) Mass Communication (427) BCA (417) Science (384) Computers & IT (Non-Engg) (383) Medicine & Health Sciences (381) Hotel Management (373) Civil Engineering (353) MCA (349) Tuteehub Top Questions (348) Distance (340) Colleges in India (334)
See More

Outbound messages and simplexml_load_string (PHP) string comparison

General Tech Bugs & Fixes
Max. 2000 characters
Replies

usr_profile.png
Sophia Chang

User

( 6 months ago )

 

I am trying to use an IF statement in PHP to set a variable based on the value of an object returned by an outbound message being processed with simplexml_load_string().

It seems that comparing the resulting object to string in PHP is not working as I expected it would.

The relevant code is:

<?php
…
ob_start();
$capturedData = fopen('php://input', 'rb');
$content = fread($capturedData,5000);
$rcXML = simplexml_load_string($content);
…
$priority = $rcXML->children('http://schemas.xmlsoap.org/soap/envelope/')->Body->children('http://soap.sforce.com/2005/09/outbound')->notifications->Notification->sObject->children('urn:sobject.enterprise.soap.sforce.com')->Priority.PHP_EOL;
…
ob_end_clean();
…
if ($priority == "Urgent") {
   $color = "red";
} 
…
?>

I have tried several variations of print_r() and (string) against $priority, but am still not getting the expected results (change $color to "red").

The googles tells me that I need to use asXML() since simplexml_load_string() does not return a standard PHP object, but I am having no luck in getting that to work either.

$priority->asXML() returns: PHP Fatal error: Call to a member function asXML() on string

And I cannot seem to figure out how to properly use that either I guess.

Admittedly, my coding skills are not that polished!

Has anyone done something like this or know how I might be able to get this to work?

usr_profile.png
Lucky Negi

User

( 6 months ago )

ok - I was going down the wrong path on this....

Some additional debug and help from a coworker and the problem was this:

$priority was being saved with a newline at the end.

Simply add trim() to the if condition and wha-la!

if (trim($priority) == "High") {
   $color = "yellow";
} elseif (trim($priority) == "Urgent") {
   $color = "red";
} else {
   $color = "green";
}

what's your interest


forum_ban8_5d8c5fd7cf6f7.gif