Ich brauche eine Funktion, die NVP korrekt in PHP Array parsen wird. Ich habe Code verwendet, der von Paypal zur Verfügung gestellt wurde, aber es funktionierte nicht, wenn die Stringlänge neben dem Namen angegeben wurde.Was ist der beste Weg, Paypal NVP in PHP zu analysieren?
Hier ist was ich bisher habe.
private function parseNVP($nvpstr)
{
$intial=0;
$nvpArray = array();
while(strlen($nvpstr))
{
//postion of Key
$keypos= strpos($nvpstr,'=');
//position of value
$valuepos = strpos($nvpstr,'&') ? strpos($nvpstr,'&'): strlen($nvpstr);
/*getting the Key and Value values and storing in a Associative Array*/
$keyval=substr($nvpstr,$intial,$keypos);
$vallength=$valuepos-$keypos-1;
// check if the length is explicitly specified
if($braketpos = strpos($keyval,'['))
{
// override value length
$vallength = substr($keyval,$braketpos+1,strlen($keyval)-$braketpos-2);
// get rid of brackets from key name
$keyval = substr($keyval,0,$braketpos);
}
$valval=substr($nvpstr,$keypos+1,$vallength);
//decoding the respose
if (isValidXMLString("<".urldecode($keyval).">".urldecode($valval)."</".urldecode($keyval).">"))
$nvpArray[urldecode($keyval)] =urldecode($valval);
$nvpstr=substr($nvpstr,$keypos+$vallength+2,strlen($nvpstr));
}
return $nvpArray;
}
Diese Funktion funktioniert die meiste Zeit.
Dies ist falsch, da parse_str auf "note [6] = aaaaa Zeug = 2" in Array führen ('note' => Array (5 => 'aaaaa '),' Zeug' => 2) das Ergebnis sollte array sein ('notieren' => 'aaaaa', 'stuff' => 2) –
Nein. Das Ergebnis sollte nicht 'array (' notieren '=>' aaaaa ',' stuff '=> 2) 'sein . Dafür hättest du "note = aaaaa & stuff = 2". Meine Antwort ist nicht falsch. Ich habe eine Paypal Payment Gateway Integration in PHP mit dem Code, den ich gesendet habe, aufgebaut. Es verarbeitet Tausende von Transaktionen pro Monat gut. – Josh
Die Zeichenfolge Länge sollte nicht neben der Zeichenfolge wie folgt angegeben werden. PayPal NVP funktioniert nicht. Lesen Sie ihr Handbuch. "Die Anfrage und die Antwort sind URL-codiert" https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_api_nvp_NVPAPIOverview – Josh