Php getting data out of an array - php
I have a massive array that i can't get data out of. I can only get data out of the first set of items.
I need to get to
["USFICO"]=>
array(3) {
["FICOScore"]=>
string(5) "00650"
out of it. But i can only get the top portion to work w/ $tester = $array['EfxReport']['#attributes']['reportId']; outputs to string(22) "USConsumerCreditReport" as expected.
how can i get the FICO score out of this array.
Here is the array.
array(1) {
["EfxReport"]=>
array(3) {
["#attributes"]=>
array(2) {
["requestNumber"]=>
string(1) "1"
["reportId"]=>
string(22) "USConsumerCreditReport"
}
["USDecisionPowerExpressReports"]=>
array(1) {
["USDecisionPowerExpressReport"]=>
array(4) {
["#attributes"]=>
array(2) {
["subjectType"]=>
string(7) "Subject"
["multipleNumber"]=>
string(1) "1"
}
["USMasterHeader"]=>
array(5) {
["CustomerReferenceNumber"]=>
string(6) "EFX QA"
["CustomerNumber"]=>
string(10) "999KI00553"
["ECOAInquiryType"]=>
string(1) "I"
["DateOfRequest"]=>
string(10) "02/23/2017"
["EquifaxReferenceNumber"]=>
string(9) "187391427"
}
["USConsumerCreditReport"]=>
array(6) {
["#attributes"]=>
array(2) {
["subjectType"]=>
string(7) "Subject"
["multipleNumber"]=>
string(1) "1"
}
["USHeader"]=>
array(3) {
["Request"]=>
array(6) {
["CustomerReferenceNumber"]=>
string(6) "EFX QA"
["CustomerNumber"]=>
string(10) "999KI00553"
["ConsumerReferralCode"]=>
string(3) "024"
["ECOAInquiryType"]=>
string(1) "I"
["NumberOfMonthsToCountInquiries"]=>
string(14) "Last 24 Months"
["NumberOfMonthsToCountDelinquencies"]=>
string(23) "Last 6 Years, 11 Months"
}
["CreditFile"]=>
array(11) {
["HitCode"]=>
array(1) {
["#attributes"]=>
array(2) {
["code"]=>
string(1) "1"
["description"]=>
string(3) "Hit"
}
}
["FileSinceDate"]=>
string(10) "04/16/2003"
["DateOfLastActivity"]=>
string(10) "01/24/2017"
["DateOfRequest"]=>
string(10) "02/23/2017"
["Identityscans"]=>
array(1) {
["Identityscan"]=>
array(1) {
["#attributes"]=>
array(2) {
["code"]=>
string(1) "8"
["description"]=>
string(74) "Unable to perform telephone validation due to insufficient telephone input"
}
}
}
["AddressDiscrepancyIndicator"]=>
string(1) "N"
["CreateCode"]=>
string(1) "2"
["FileStatus1"]=>
string(3) "016"
["FileStatus2"]=>
string(3) "242"
["FileStatus3"]=>
string(3) "004"
["BureauCode"]=>
string(3) "244"
}
["Subject"]=>
array(2) {
["SubjectName"]=>
array(3) {
["LastName"]=>
string(7) "DGNNLXZ"
["FirstName"]=>
string(7) "CHANITA"
["MiddleName"]=>
string(1) "S"
}
["SubjectId"]=>
array(2) {
["SubjectSSN"]=>
string(8) "66639074"
["DateOfBirth"]=>
string(10) "08/17/1988"
}
}
}
["USAddresses"]=>
array(1) {
["USAddress"]=>
array(3) {
[0]=>
array(8) {
["#attributes"]=>
array(2) {
["code"]=>
string(2) "CA"
["description"]=>
string(15) "Current Address"
}
["ParsedStreetAddress"]=>
array(3) {
["StreetNumber"]=>
string(4) "4338"
["StreetName"]=>
string(9) "W POTOMAC"
["StreetType"]=>
string(3) "AVE"
}
["City"]=>
string(7) "CHICAGO"
["State"]=>
string(2) "IL"
["PostalCode"]=>
string(5) "60651"
["DateAddressFirstReported"]=>
string(7) "07/2015"
["AddressSource"]=>
array(1) {
["#attributes"]=>
array(2) {
["code"]=>
string(1) "T"
["description"]=>
string(4) "Tape"
}
}
["DateAddressLastReported"]=>
string(7) "02/2017"
}
[1]=>
array(8) {
["#attributes"]=>
array(2) {
["code"]=>
string(2) "FA"
["description"]=>
string(14) "Former Address"
}
["ParsedStreetAddress"]=>
array(3) {
["StreetNumber"]=>
string(4) "1301"
["StreetName"]=>
string(7) "BRUMMEL"
["StreetType"]=>
string(8) "ST APT 8"
}
["City"]=>
string(8) "EVANSTON"
["State"]=>
string(2) "IL"
["PostalCode"]=>
string(5) "60202"
["DateAddressFirstReported"]=>
string(7) "04/2015"
["AddressSource"]=>
array(1) {
["#attributes"]=>
array(2) {
["code"]=>
string(1) "T"
["description"]=>
string(4) "Tape"
}
}
["DateAddressLastReported"]=>
string(7) "04/2015"
}
[2]=>
array(8) {
["#attributes"]=>
array(2) {
["code"]=>
string(2) "F2"
["description"]=>
string(21) "Second Former Address"
}
["ParsedStreetAddress"]=>
array(3) {
["StreetNumber"]=>
string(4) "1208"
["StreetName"]=>
string(11) "W JEFFERSON"
["StreetType"]=>
string(8) "ST APT C"
}
["City"]=>
string(11) "SPRINGFIELD"
["State"]=>
string(2) "IL"
["PostalCode"]=>
string(5) "62702"
["DateAddressFirstReported"]=>
string(7) "06/2014"
["AddressSource"]=>
array(1) {
["#attributes"]=>
array(2) {
["code"]=>
string(1) "T"
["description"]=>
string(4) "Tape"
}
}
["DateAddressLastReported"]=>
string(7) "06/2014"
}
}
}
["USEmployments"]=>
array(1) {
["USEmployment"]=>
array(3) {
["#attributes"]=>
array(2) {
["code"]=>
string(2) "ES"
["description"]=>
string(24) "Last Reported Employment"
}
["Occupation"]=>
string(14) "CORRECTION OFF"
["Employer"]=>
string(18) "MACON STATE PRISON"
}
}
["USFICO"]=>
array(3) {
["FICOScore"]=>
string(5) "00650"
["ScoreReasons"]=>
array(1) {
["ScoreReason"]=>
array(4) {
[0]=>
array(1) {
["#attributes"]=>
array(3) {
["code"]=>
string(5) "00038"
["description"]=>
string(69) "Serious delinquency, and derogatory public record or collection filed"
["number"]=>
string(1) "1"
}
}
[1]=>
array(1) {
["#attributes"]=>
array(3) {
["code"]=>
string(5) "00010"
["description"]=>
string(76) "Prop of balances to credit limits is too high on bank rev or other rev accts"
["number"]=>
string(1) "2"
}
}
[2]=>
array(1) {
["#attributes"]=>
array(3) {
["code"]=>
string(5) "00018"
["description"]=>
string(35) "Number of accounts with delinquency"
["number"]=>
string(1) "3"
}
}
[3]=>
array(1) {
["#attributes"]=>
array(3) {
["code"]=>
string(5) "00014"
["description"]=>
string(45) "Length of time accounts have been established"
["number"]=>
string(1) "4"
}
}
}
}
["ScoreIndicator"]=>
array(1) {
["#attributes"]=>
array(2) {
["code"]=>
string(1) "J"
["description"]=>
string(39) "FICO Score 5 based on Equifax Data (NF)"
}
}
}
["USIdentificationSSN"]=>
array(4) {
["MDBSubjectSSN"]=>
string(9) "666390749"
["InquirySubjectSSN"]=>
string(9) "666390749"
["InquirySSNDateIssued"]=>
string(4) "1992"
["InquirySSNStateIssued"]=>
string(2) "GA"
}
}
["USDecisionPowerExpressSegment"]=>
array(4) {
["ConsumerDisclosureIndicator"]=>
array(0) {
}
["ReportTextMessage"]=>
string(7) "OFFER C"
["SSNVarianceIndicator"]=>
array(0) {
}
["DPExpressProducts"]=>
array(1) {
["DPExpressProduct"]=>
array(4) {
[0]=>
array(5) {
["#attributes"]=>
array(1) {
["number"]=>
string(1) "1"
}
["Description"]=>
string(1) "A"
["ApprovalIndicator"]=>
string(1) "N"
["Limit"]=>
array(0) {
}
["Miscellaneous"]=>
array(0) {
}
}
[1]=>
array(5) {
["#attributes"]=>
array(1) {
["number"]=>
string(1) "2"
}
["Description"]=>
string(1) "B"
["ApprovalIndicator"]=>
string(1) "N"
["Limit"]=>
array(0) {
}
["Miscellaneous"]=>
array(0) {
}
}
[2]=>
array(5) {
["#attributes"]=>
array(1) {
["number"]=>
string(1) "3"
}
["Description"]=>
string(1) "C"
["ApprovalIndicator"]=>
string(1) "Y"
["Limit"]=>
array(0) {
}
["Miscellaneous"]=>
array(0) {
}
}
[3]=>
array(5) {
["#attributes"]=>
array(1) {
["number"]=>
string(1) "4"
}
["Description"]=>
string(1) "D"
["ApprovalIndicator"]=>
string(1) "N"
["Limit"]=>
array(0) {
}
["Miscellaneous"]=>
array(0) {
}
}
}
}
}
}
}
["USPrintImage"]=>
array(0) {
}
}
}
What's the error you're getting? Try:
$tester = $array['EfxReport']['USDecisionPowerExpressReports']['USDecisionPowerExpressReport']['USConsumerCreditReport']['USFICO']['FICOScore'];
Also I really hope this is fake data, you've included very personal/sensitive information in your array printout.
Related
php Interpret xml file provided by NMAP
I have a xml file provided by NMAP 7.80, and I would like to interpret it using php version 7.4.3. First I tried to use 'SimpleXMLElement', but I am not sure how to handle results. $xml=simplexml_load_string($file, 'SimpleXMLElement', LIBXML_NOCDATA | LIBXML_NOBLANKS) or die("Error: Cannot create object"); Seems that #attributes is the main field, but I am not able to call it. echo $xml1->attributes; This is the output from the dump object(SimpleXMLElement)#2 (6) { ["#attributes"]=> array(6) { ["scanner"]=> string(4) "nmap" ["args"]=> string(111) "nmap --script nmap-vulners/ -sV -oX /var/scripts/bash/security/log/UCFGSP.xml 192.168.1.1/32" ["start"]=> string(10) "1645692795" ["startstr"]=> string(24) "Thu Feb 24 05:53:15 2022" ["version"]=> string(4) "7.80" ["xmloutputversion"]=> string(4) "1.04" } ["scaninfo"]=> object(SimpleXMLElement)#8 (1) { ["#attributes"]=> array(4) { ["type"]=> string(3) "syn" ["protocol"]=> string(3) "tcp" ["numservices"]=> string(4) "1000" ["services"]=> string(3813) "1,3-4,6-7,9,13,17,(...)" } } ["verbose"]=> (I have omitted the rest...) I also have tried to decode to json format. It works better, but the array structure is very hard to understand. $xml = json_decode(json_encode((array) simplexml_load_string($file)), 1); I can decode the data using e.g. echo "type:".$xml['scaninfo']['#attributes']['type'] // output: type:syn echo "scanner:".$xml["#attributes"]["scanner"] // output: scanner:nmap Occurs there are too many fields, and I still creating several loops (foreach) in order to understand each multidimensional array loop. Here is the dump: array(6) { ["#attributes"]=> array(6) { ["scanner"]=> string(4) "nmap" ["args"]=> string(111) "nmap --script nmap-vulners/ -sV -oX /var/scripts/bash/security/log/UCFGSP.xml 192.168.1.1/32" ["start"]=> string(10) "1645692795" ["startstr"]=> string(24) "Thu Feb 24 05:53:15 2022" ["version"]=> string(4) "7.80" ["xmloutputversion"]=> string(4) "1.04" } ["scaninfo"]=> array(1) { ["#attributes"]=> array(4) { ["type"]=> string(3) "syn" ["protocol"]=> string(3) "tcp" ["numservices"]=> string(4) "1000" ["services"]=> string(3813) "1,3-4,6-7,9,13,17,19-26,30,32-33,37,42-43,49,53,70,79-85,88-90,99-100,106,109-111,113,119,125,135,139,143-144,146,161,163,179,199,211-212,222,254-256,259,264,280,301,306,311,340,366,389,406-407,416-417,425,427,443-445,458,464-465,481,497,500,512-515,524,541,543-545,548,554-555,563,587,593,616-617,625,631,636,646,648,666-668,683,687,691,700,705,711,714,720,722,726,749,765,777,783,787,800-801,808,843,873,880,888,898,900-903,911-912,981,987,990,992-993,995,999-1002,1007,1009-1011,1021-1100,1102,1104-1108,1110-1114,1117,1119,1121-1124,1126,1130-1132,1137-1138,1141,1145,1147-1149,1151-1152,1154,1163-1166,1169,1174-1175,1183,1185-1187,1192,1198-1199,1201,1213,1216-1218,1233-1234,1236,1244,1247-1248,1259,1271-1272,1277,1287,1296,1300-1301,1309-1311,1322,1328,1334,1352,1417,1433-1434,1443,1455,1461,1494,1500-1501,1503,1521,1524,1533,1556,1580,1583,1594,1600,1641,1658,1666,1687-1688,1700,1717-1721,1723,1755,1761,1782-1783,1801,1805,1812,1839-1840,1862-1864,1875,1900,1914,1935,1947,1971-1972,1974,1984,1998-2010,2013,2020-2022,2030,2033-2035,2038,2040-2043,2045-2049,2065,2068,2099-2100,2103,2105-2107,2111,2119,2121,2126,2135,2144,2160-2161,2170,2179,2190-2191,2196,2200,2222,2251,2260,2288,2301,2323,2366,2381-2383,2393-2394,2399,2401,2492,2500,2522,2525,2557,2601-2602,2604-2605,2607-2608,2638,2701-2702,2710,2717-2718,2725,2800,2809,2811,2869,2875,2909-2910,2920,2967-2968,2998,3000-3001,3003,3005-3007,3011,3013,3017,3030-3031,3052,3071,3077,3128,3168,3211,3221,3260-3261,3268-3269,3283,3300-3301,3306,3322-3325,3333,3351,3367,3369-3372,3389-3390,3404,3476,3493,3517,3527,3546,3551,3580,3659,3689-3690,3703,3737,3766,3784,3800-3801,3809,3814,3826-3828,3851,3869,3871,3878,3880,3889,3905,3914,3918,3920,3945,3971,3986,3995,3998,4000-4006,4045,4111,4125-4126,4129,4224,4242,4279,4321,4343,4443-4446,4449,4550,4567,4662,4848,4899-4900,4998,5000-5004,5009,5030,5033,5050-5051,5054,5060-5061,5080,5087,5100-5102,5120,5190,5200,5214,5221-5222,5225-5226,5269,5280,5298,5357,5405,5414,5431-5432,5440,5500,5510,5544,5550,5555,5560,5566,5631,5633,5666,5678-5679,5718,5730,5800-5802,5810-5811,5815,5822,5825,5850,5859,5862,5877,5900-5904,5906-5907,5910-5911,5915,5922,5925,5950,5952,5959-5963,5987-5989,5998-6007,6009,6025,6059,6100-6101,6106,6112,6123,6129,6156,6346,6389,6502,6510,6543,6547,6565-6567,6580,6646,6666-6669,6689,6692,6699,6779,6788-6789,6792,6839,6881,6901,6969,7000-7002,7004,7007,7019,7025,7070,7100,7103,7106,7200-7201,7402,7435,7443,7496,7512,7625,7627,7676,7741,7777-7778,7800,7911,7920-7921,7937-7938,7999-8002,8007-8011,8021-8022,8031,8042,8045,8080-8090,8093,8099-8100,8180-8181,8192-8194,8200,8222,8254,8290-8292,8300,8333,8383,8400,8402,8443,8500,8600,8649,8651-8652,8654,8701,8800,8873,8888,8899,8994,9000-9003,9009-9011,9040,9050,9071,9080-9081,9090-9091,9099-9103,9110-9111,9200,9207,9220,9290,9415,9418,9485,9500,9502-9503,9535,9575,9593-9595,9618,9666,9876-9878,9898,9900,9917,9929,9943-9944,9968,9998-10004,10009-10010,10012,10024-10025,10082,10180,10215,10243,10566,10616-10617,10621,10626,10628-10629,10778,11110-11111,11967,12000,12174,12265,12345,13456,13722,13782-13783,14000,14238,14441-14442,15000,15002-15004,15660,15742,16000-16001,16012,16016,16018,16080,16113,16992-16993,17877,17988,18040,18101,18988,19101,19283,19315,19350,19780,19801,19842,20000,20005,20031,20221-20222,20828,21571,22939,23502,24444,24800,25734-25735,26214,27000,27352-27353,27355-27356,27715,28201,30000,30718,30951,31038,31337,32768-32785,33354,33899,34571-34573,35500,38292,40193,40911,41511,42510,44176,44442-44443,44501,45100,48080,49152-49161,49163,49165,49167,49175-49176,49400,49999-50003,50006,50300,50389,50500,50636,50800,51103,51493,52673,52822,52848,52869,54045,54328,55055-55056,55555,55600,56737-56738,57294,57797,58080,60020,60443,61532,61900,62078,63331,64623,64680,65000,65129,65389" } } ["verbose"]=> array(1) { ["#attributes"]=> array(1) { ["level"]=> string(1) "0" } } ["debugging"]=> array(1) { ["#attributes"]=> array(1) { ["level"]=> string(1) "0" } } ["host"]=> array(6) { ["#attributes"]=> array(2) { ["starttime"]=> string(10) "1645692796" ["endtime"]=> string(10) "1645692856" } ["status"]=> array(1) { ["#attributes"]=> array(3) { ["state"]=> string(2) "up" ["reason"]=> string(10) "echo-reply" ["reason_ttl"]=> string(3) "126" } } ["address"]=> array(1) { ["#attributes"]=> array(2) { ["addr"]=> string(15) "192.168.1.1" ["addrtype"]=> string(4) "ipv4" } } ["hostnames"]=> array(0) { } ["ports"]=> array(2) { ["extraports"]=> array(2) { ["#attributes"]=> array(2) { ["state"]=> string(6) "closed" ["count"]=> string(3) "983" } ["extrareasons"]=> array(1) { ["#attributes"]=> array(2) { ["reason"]=> string(6) "resets" ["count"]=> string(3) "983" } } } ["port"]=> array(17) { [0]=> array(3) { ["#attributes"]=> array(2) { ["protocol"]=> string(3) "tcp" ["portid"]=> string(2) "22" } ["state"]=> array(1) { ["#attributes"]=> array(3) { ["state"]=> string(4) "open" ["reason"]=> string(7) "syn-ack" ["reason_ttl"]=> string(3) "126" } } ["service"]=> array(2) { ["#attributes"]=> array(6) { ["name"]=> string(3) "ssh" ["product"]=> string(7) "OpenSSH" ["version"]=> string(15) "for_Windows_8.1" ["extrainfo"]=> string(12) "protocol 2.0" ["method"]=> string(6) "probed" ["conf"]=> string(2) "10" } ["cpe"]=> string(38) "cpe:/a:openbsd:openssh:for_windows_8.1" } } [1]=> array(4) { ["#attributes"]=> array(2) { ["protocol"]=> string(3) "tcp" ["portid"]=> string(2) "80" } ["state"]=> array(1) { ["#attributes"]=> array(3) { ["state"]=> string(4) "open" ["reason"]=> string(7) "syn-ack" ["reason_ttl"]=> string(3) "126" } } ["service"]=> array(2) { ["#attributes"]=> array(6) { ["name"]=> string(4) "http" ["product"]=> string(19) "Microsoft IIS httpd" ["version"]=> string(3) "8.0" ["ostype"]=> string(7) "Windows" ["method"]=> string(6) "probed" ["conf"]=> string(2) "10" } ["cpe"]=> array(2) { [0]=> string(24) "cpe:/a:microsoft:iis:8.0" [1]=> string(24) "cpe:/o:microsoft:windows" } } ["script"]=> array(2) { [0]=> array(2) { ["#attributes"]=> array(2) { ["id"]=> string(18) "http-server-header" ["output"]=> string(17) "Microsoft-IIS/8.0" } ["elem"]=> string(17) "Microsoft-IIS/8.0" } [1]=> array(2) { ["#attributes"]=> array(2) { ["id"]=> string(7) "vulners" ["output"]=> string(91) " cpe:/a:microsoft:iis:8.0: SMNTC-70937 7.6 https://vulners.com/symantec/SMNTC-70937" } ["table"]=> array(2) { ["#attributes"]=> array(1) { ["key"]=> string(24) "cpe:/a:microsoft:iis:8.0" } ["table"]=> array(1) { ["elem"]=> array(4) { [0]=> string(8) "symantec" [1]=> string(5) "false" [2]=> string(3) "7.6" [3]=> string(11) "SMNTC-70937" } } } } } } [2]=> array(3) { ["#attributes"]=> array(2) { ["protocol"]=> string(3) "tcp" ["portid"]=> string(3) "135" } ["state"]=> array(1) { ["#attributes"]=> array(3) { ["state"]=> string(4) "open" ["reason"]=> string(7) "syn-ack" ["reason_ttl"]=> string(3) "126" } } ["service"]=> array(2) { ["#attributes"]=> array(5) { ["name"]=> string(5) "msrpc" ["product"]=> string(21) "Microsoft Windows RPC" ["ostype"]=> string(7) "Windows" ["method"]=> string(6) "probed" ["conf"]=> string(2) "10" } ["cpe"]=> string(24) "cpe:/o:microsoft:windows" } } [3]=> array(3) { ["#attributes"]=> array(2) { ["protocol"]=> string(3) "tcp" ["portid"]=> string(3) "139" } ["state"]=> array(1) { ["#attributes"]=> array(3) { ["state"]=> string(4) "open" ["reason"]=> string(7) "syn-ack" ["reason_ttl"]=> string(3) "126" } } ["service"]=> array(2) { ["#attributes"]=> array(5) { ["name"]=> string(11) "netbios-ssn" ["product"]=> string(29) "Microsoft Windows netbios-ssn" ["ostype"]=> string(7) "Windows" ["method"]=> string(6) "probed" ["conf"]=> string(2) "10" } ["cpe"]=> string(24) "cpe:/o:microsoft:windows" } } [4]=> array(3) { ["#attributes"]=> array(2) { ["protocol"]=> string(3) "tcp" ["portid"]=> string(3) "445" } ["state"]=> array(1) { ["#attributes"]=> array(3) { ["state"]=> string(4) "open" ["reason"]=> string(7) "syn-ack" ["reason_ttl"]=> string(3) "126" } } ["service"]=> array(2) { ["#attributes"]=> array(5) { ["name"]=> string(12) "microsoft-ds" ["product"]=> string(52) "Microsoft Windows Server 2008 R2 - 2012 microsoft-ds" ["ostype"]=> string(29) "Windows Server 2008 R2 - 2012" ["method"]=> string(6) "probed" ["conf"]=> string(2) "10" } ["cpe"]=> string(24) "cpe:/o:microsoft:windows" } } [5]=> array(3) { ["#attributes"]=> array(2) { ["protocol"]=> string(3) "tcp" ["portid"]=> string(4) "1801" } ["state"]=> array(1) { ["#attributes"]=> array(3) { ["state"]=> string(4) "open" ["reason"]=> string(7) "syn-ack" ["reason_ttl"]=> string(3) "126" } } ["service"]=> array(1) { ["#attributes"]=> array(3) { ["name"]=> string(4) "msmq" ["method"]=> string(5) "table" ["conf"]=> string(1) "3" } } } [6]=> array(3) { ["#attributes"]=> array(2) { ["protocol"]=> string(3) "tcp" ["portid"]=> string(4) "2103" } ["state"]=> array(1) { ["#attributes"]=> array(3) { ["state"]=> string(4) "open" ["reason"]=> string(7) "syn-ack" ["reason_ttl"]=> string(3) "126" } } ["service"]=> array(2) { ["#attributes"]=> array(5) { ["name"]=> string(5) "msrpc" ["product"]=> string(21) "Microsoft Windows RPC" ["ostype"]=> string(7) "Windows" ["method"]=> string(6) "probed" ["conf"]=> string(2) "10" } ["cpe"]=> string(24) "cpe:/o:microsoft:windows" } } [7]=> array(3) { ["#attributes"]=> array(2) { ["protocol"]=> string(3) "tcp" ["portid"]=> string(4) "2105" } ["state"]=> array(1) { ["#attributes"]=> array(3) { ["state"]=> string(4) "open" ["reason"]=> string(7) "syn-ack" ["reason_ttl"]=> string(3) "126" } } ["service"]=> array(2) { ["#attributes"]=> array(5) { ["name"]=> string(5) "msrpc" ["product"]=> string(21) "Microsoft Windows RPC" ["ostype"]=> string(7) "Windows" ["method"]=> string(6) "probed" ["conf"]=> string(2) "10" } ["cpe"]=> string(24) "cpe:/o:microsoft:windows" } } [8]=> array(3) { ["#attributes"]=> array(2) { ["protocol"]=> string(3) "tcp" ["portid"]=> string(4) "2107" } ["state"]=> array(1) { ["#attributes"]=> array(3) { ["state"]=> string(4) "open" ["reason"]=> string(7) "syn-ack" ["reason_ttl"]=> string(3) "126" } } ["service"]=> array(2) { ["#attributes"]=> array(5) { ["name"]=> string(5) "msrpc" ["product"]=> string(21) "Microsoft Windows RPC" ["ostype"]=> string(7) "Windows" ["method"]=> string(6) "probed" ["conf"]=> string(2) "10" } ["cpe"]=> string(24) "cpe:/o:microsoft:windows" } } [9]=> array(4) { ["#attributes"]=> array(2) { ["protocol"]=> string(3) "tcp" ["portid"]=> string(4) "3128" } ["state"]=> array(1) { ["#attributes"]=> array(3) { ["state"]=> string(4) "open" ["reason"]=> string(7) "syn-ack" ["reason_ttl"]=> string(3) "126" } } ["service"]=> array(2) { ["#attributes"]=> array(5) { ["name"]=> string(10) "http-proxy" ["product"]=> string(16) "Squid http proxy" ["version"]=> string(6) "3.5.28" ["method"]=> string(6) "probed" ["conf"]=> string(2) "10" } ["cpe"]=> string(31) "cpe:/a:squid-cache:squid:3.5.28" } ["script"]=> array(2) { [0]=> array(2) { ["#attributes"]=> array(2) { ["id"]=> string(18) "http-server-header" ["output"]=> string(12) "squid/3.5.28" } ["elem"]=> string(12) "squid/3.5.28" } [1]=> array(2) { ["#attributes"]=> array(2) { ["id"]=> string(7) "vulners" ["output"]=> string(2014) " cpe:/a:squid-cache:squid:3.5.28: MSF:ILITIES/UBUNTU-CVE-2019-12525/ 7.5 https://vulners.com/metasploit/MSF:ILITIES/UBUNTU-CVE-2019-12525/ *EXPLOIT* MSF:ILITIES/CENTOS_LINUX-CVE-2020-11945/ 7.5 https://vulners.com/metasploit/MSF:ILITIES/CENTOS_LINUX-CVE-2020-11945/ *EXPLOIT* CVE-2020-11945 7.5 https://vulners.com/cve/CVE-2020-11945 CVE-2019-12526 7.5 https://vulners.com/cve/CVE-2019-12526 CVE-2019-12525 7.5 https://vulners.com/cve/CVE-2019-12525 CVE-2019-12519 7.5 https://vulners.com/cve/CVE-2019-12519 CVE-2020-24606 7.1 https://vulners.com/cve/CVE-2020-24606 CVE-2020-15049 6.5 https://vulners.com/cve/CVE-2020-15049 CVE-2019-12523 6.4 https://vulners.com/cve/CVE-2019-12523 CVE-2019-18677 5.8 https://vulners.com/cve/CVE-2019-18677 MSF:ILITIES/UBUNTU-CVE-2021-31807/ 5.0 https://vulners.com/metasploit/MSF:ILITIES/UBUNTU-CVE-2021-31807/ *EXPLOIT* CVE-2021-28651 5.0 https://vulners.com/cve/CVE-2021-28651 CVE-2020-25097 5.0 https://vulners.com/cve/CVE-2020-25097 CVE-2020-14058 5.0 https://vulners.com/cve/CVE-2020-14058 CVE-2019-18679 5.0 https://vulners.com/cve/CVE-2019-18679 CVE-2019-18678 5.0 https://vulners.com/cve/CVE-2019-18678 CVE-2019-18676 5.0 https://vulners.com/cve/CVE-2019-18676 CVE-2019-12529 4.3 https://vulners.com/cve/CVE-2019-12529 CVE-2019-12521 4.3 https://vulners.com/cve/CVE-2019-12521 CVE-2021-31807 4.0 https://vulners.com/cve/CVE-2021-31807 CVE-2021-28652 4.0 https://vulners.com/cve/CVE-2021-28652 MSF:ILITIES/UBUNTU-CVE-2021-28651/ 0.0 https://vulners.com/metasploit/MSF:ILITIES/UBUNTU-CVE-2021-28651/ *EXPLOIT* MSF:ILITIES/SUSE-CVE-2021-28652/ 0.0 https://vulners.com/metasploit/MSF:ILITIES/SUSE-CVE-2021-28652/ *EXPLOIT* MSF:ILITIES/SUSE-CVE-2021-28651/ 0.0 https://vulners.com/metasploit/MSF:ILITIES/SUSE-CVE-2021-28651/ *EXPLOIT* MSF:ILITIES/DEBIAN-CVE-2021-31807/ 0.0 https://vulners.com/metasploit/MSF:ILITIES/DEBIAN-CVE-2021-31807/ *EXPLOIT*" } ["table"]=> array(2) { ["#attributes"]=> array(1) { ["key"]=> string(31) "cpe:/a:squid-cache:squid:3.5.28" } ["table"]=> array(25) { [0]=> array(1) { ["elem"]=> array(4) { [0]=> string(10) "metasploit" [1]=> string(4) "true" [2]=> string(3) "7.5" [3]=> string(34) "MSF:ILITIES/UBUNTU-CVE-2019-12525/" } } [1]=> array(1) { ["elem"]=> array(4) { [0]=> string(10) "metasploit" [1]=> string(4) "true" [2]=> string(3) "7.5" [3]=> string(40) "MSF:ILITIES/CENTOS_LINUX-CVE-2020-11945/" } } [2]=> array(1) { ["elem"]=> array(4) { [0]=> string(3) "cve" [1]=> string(5) "false" [2]=> string(3) "7.5" [3]=> string(14) "CVE-2020-11945" } } [3]=> array(1) { ["elem"]=> array(4) { [0]=> string(3) "cve" [1]=> string(5) "false" [2]=> string(3) "7.5" [3]=> string(14) "CVE-2019-12526" } } [4]=> array(1) { ["elem"]=> array(4) { [0]=> string(3) "cve" [1]=> string(5) "false" [2]=> string(3) "7.5" [3]=> string(14) "CVE-2019-12525" } } [5]=> array(1) { ["elem"]=> array(4) { [0]=> string(3) "cve" [1]=> string(5) "false" [2]=> string(3) "7.5" [3]=> string(14) "CVE-2019-12519" } } [6]=> array(1) { ["elem"]=> array(4) { [0]=> string(3) "cve" [1]=> string(5) "false" [2]=> string(3) "7.1" [3]=> string(14) "CVE-2020-24606" } } [7]=> array(1) { ["elem"]=> array(4) { [0]=> string(3) "cve" [1]=> string(5) "false" [2]=> string(3) "6.5" [3]=> string(14) "CVE-2020-15049" } } [8]=> array(1) { ["elem"]=> array(4) { [0]=> string(3) "cve" [1]=> string(5) "false" [2]=> string(3) "6.4" [3]=> string(14) "CVE-2019-12523" } } [9]=> array(1) { ["elem"]=> array(4) { [0]=> string(3) "cve" [1]=> string(5) "false" [2]=> string(3) "5.8" [3]=> string(14) "CVE-2019-18677" } } [10]=> array(1) { ["elem"]=> array(4) { [0]=> string(10) "metasploit" [1]=> string(4) "true" [2]=> string(3) "5.0" [3]=> string(34) "MSF:ILITIES/UBUNTU-CVE-2021-31807/" } } [11]=> array(1) { ["elem"]=> array(4) { [0]=> string(3) "cve" [1]=> string(5) "false" [2]=> string(3) "5.0" [3]=> string(14) "CVE-2021-28651" } } [12]=> array(1) { ["elem"]=> array(4) { [0]=> string(3) "cve" [1]=> string(5) "false" [2]=> string(3) "5.0" [3]=> string(14) "CVE-2020-25097" } } [13]=> array(1) { ["elem"]=> array(4) { [0]=> string(3) "cve" [1]=> string(5) "false" [2]=> string(3) "5.0" [3]=> string(14) "CVE-2020-14058" } } [14]=> array(1) { ["elem"]=> array(4) { [0]=> string(3) "cve" [1]=> string(5) "false" [2]=> string(3) "5.0" [3]=> string(14) "CVE-2019-18679" } } [15]=> array(1) { ["elem"]=> array(4) { [0]=> string(3) "cve" [1]=> string(5) "false" [2]=> string(3) "5.0" [3]=> string(14) "CVE-2019-18678" } } [16]=> array(1) { ["elem"]=> array(4) { [0]=> string(3) "cve" [1]=> string(5) "false" [2]=> string(3) "5.0" [3]=> string(14) "CVE-2019-18676" } } [17]=> array(1) { ["elem"]=> array(4) { [0]=> string(3) "cve" [1]=> string(5) "false" [2]=> string(3) "4.3" [3]=> string(14) "CVE-2019-12529" } } [18]=> array(1) { ["elem"]=> array(4) { [0]=> string(3) "cve" [1]=> string(5) "false" [2]=> string(3) "4.3" [3]=> string(14) "CVE-2019-12521" } } [19]=> array(1) { ["elem"]=> array(4) { [0]=> string(3) "cve" [1]=> string(5) "false" [2]=> string(3) "4.0" [3]=> string(14) "CVE-2021-31807" } } [20]=> array(1) { ["elem"]=> array(4) { [0]=> string(3) "cve" [1]=> string(5) "false" [2]=> string(3) "4.0" [3]=> string(14) "CVE-2021-28652" } } [21]=> array(1) { ["elem"]=> array(4) { [0]=> string(10) "metasploit" [1]=> string(4) "true" [2]=> string(3) "0.0" [3]=> string(34) "MSF:ILITIES/UBUNTU-CVE-2021-28651/" } } [22]=> array(1) { ["elem"]=> array(4) { [0]=> string(10) "metasploit" [1]=> string(4) "true" [2]=> string(3) "0.0" [3]=> string(32) "MSF:ILITIES/SUSE-CVE-2021-28652/" } } [23]=> array(1) { ["elem"]=> array(4) { [0]=> string(10) "metasploit" [1]=> string(4) "true" [2]=> string(3) "0.0" [3]=> string(32) "MSF:ILITIES/SUSE-CVE-2021-28651/" } } [24]=> array(1) { ["elem"]=> array(4) { [0]=> string(10) "metasploit" [1]=> string(4) "true" [2]=> string(3) "0.0" [3]=> string(34) "MSF:ILITIES/DEBIAN-CVE-2021-31807/" } } } } } } } [10]=> array(3) { ["#attributes"]=> array(2) { ["protocol"]=> string(3) "tcp" ["portid"]=> string(4) "3389" } ["state"]=> array(1) { ["#attributes"]=> array(3) { ["state"]=> string(4) "open" ["reason"]=> string(7) "syn-ack" ["reason_ttl"]=> string(3) "126" } } ["service"]=> array(1) { ["#attributes"]=> array(4) { ["name"]=> string(13) "ms-wbt-server" ["tunnel"]=> string(3) "ssl" ["method"]=> string(5) "table" ["conf"]=> string(1) "3" } } } [11]=> array(3) { ["#attributes"]=> array(2) { ["protocol"]=> string(3) "tcp" ["portid"]=> string(5) "49152" } ["state"]=> array(1) { ["#attributes"]=> array(3) { ["state"]=> string(4) "open" ["reason"]=> string(7) "syn-ack" ["reason_ttl"]=> string(3) "126" } } ["service"]=> array(2) { ["#attributes"]=> array(5) { ["name"]=> string(5) "msrpc" ["product"]=> (...) My question is : Based on xml file, should I keep working with json decode (arrays), or give more attention to SimpleXMLElement? I believe json is easier, but is there a way to give a structural output from the entire array? e.g. array( array( '#attributes' => array( array( 'scanner' => 'nmap', 'args' => 'nmap --script nmap-vulners...', 'start' => '1645692795', (etc...) Here is a sample of the XML format: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE nmaprun> <?xml-stylesheet href="file:///usr/.../nmap.xsl" type="text/xsl"?> <!-- Nmap 7.80 scan initiated Thu Feb 24 05:53:15 2022 as: nmap --script nmap-vulners/ -sV -oX /var/scripts/bash/security/log/UCFGSP.xml 192.168.1.1/32 --> <nmaprun scanner="nmap" args="nmap --script nmap-vulners/ -sV -oX /var/scripts/bash/security/log/UCFGSP.xml 192.168.1.1/32" start="1645692795" startstr="Thu Feb 24 05:53:15 2022" version="7.80" xmloutputversion="1.04"> <scaninfo type="syn" protocol="tcp" numservices="1000" services="1,3-4,6-7,9,13,(...)"/> <verbose level="0"/> <debugging level="0"/> <host starttime="1645692796" endtime="1645692856"><status state="up" reason="echo-reply" reason_ttl="126"/> <address addr="192.168.1.1" addrtype="ipv4"/> <hostnames> </hostnames> <ports><extraports state="closed" count="983"> <extrareasons reason="resets" count="983"/> </extraports> <port protocol="tcp" portid="22"><state state="open" reason="syn-ack" reason_ttl="126"/><service name="ssh" product="OpenSSH" version="for_Windows_8.1" extrainfo="protocol 2.0" method="probed" conf="10"><cpe>cpe:/a:openbsd:openssh:for_windows_8.1</cpe></service></port> <port protocol="tcp" portid="80"><state state="open" reason="syn-ack" reason_ttl="126"/><service name="http" product="Microsoft IIS httpd" version="8.0" ostype="Windows" method="probed" conf="10"><cpe>cpe:/a:microsoft:iis:8.0</cpe><cpe>cpe:/o:microsoft:windows</cpe></service><script id="http-server-header" output="Microsoft-IIS/8.0"><elem>Microsoft-IIS/8.0</elem> </script><script id="vulners" output=" cpe:/a:microsoft:iis:8.0: SMNTC-70937 7.6 https://vulners.com/symantec/SMNTC-70937"><table key="cpe:/a:microsoft:iis:8.0"> <table> <elem key="type">symantec</elem> <elem key="is_exploit">false</elem> <elem key="cvss">7.6</elem> <elem key="id">SMNTC-70937</elem> </table> </table> </script></port> <port> <table key="cpe:/a:squid-cache:squid:3.5.28"> <elem key="type">metasploit</elem> <elem key="is_exploit">true</elem> <elem key="cvss">7.5</elem> <elem key="id">MSF:ILITIES/UBUNTU-CVE-2019-12525/</elem> </table> </port> </ports> </host> </nmaprun>
A few things to get out of the habit of: Don't bother with LIBXML_NOCDATA; it's a formatting flag for when you're outputting XML, and generally makes no difference to reading it. Don't try to encode XML as JSON, or a PHP array; you'll just get in a muddle. Don't trust the output of var_dump and friends for these objects, because they have rather a lot of "magic" that isn't displayed well. What you should do is: Have a look at the examples in the PHP manual. The simplest explanation is that you use ->name to access child elements (tags), and ['name'] to access attributes. Cast values using (string)$foo when you want them as a plain string rather than an object to navigate further. So in your case, to get the "type" in the "scaninfo", you simply write this: $type = (string)$xml->scaninfo['type']; Or to get all the "portids", you would write this: $portids = []; foreach ( $xml->host->ports->port as $port ) { $portids[] = (string)$port['portid']; }
I got it working with this syntax: $xml=simplexml_load_string($file, 'SimpleXMLElement', LIBXML_NOBLANKS) or die("Error: Cannot create object"); echo $xml->scaninfo->attributes()->protocol; Thank you all.
How to extract the weight from icecat
I am trying to create a function to extract, the weight or Height.... from Icecat catalog via ean product. Do you have any idea about the synthax ? I am little lost with all the data. Thank you. // call catalog public function getSearchProductEanXML() { $ean = $this->ean; $language = $this->lang; if($this->ean == null) { return 0; } $url = 'http://data.icecat.biz/xml_s3/xml_server3.cgi?ean_upc=' . $ean . ';lang=' . $language . ';output=productxml'; $context = stream_context_create(array('http' => array( 'header' => "Authorization: Basic " . base64_encode($this->username . ":" . $this->password) ))); $data = file_get_contents($url, false, $context); $xml = new SimpleXMLElement($data); return $xml; } // function to extract weight public function getProductWeight() { $xml = $this->getSearchProductEanXML(); $product_pdf_weight = $xml->xpath("//ProductFeature"); foreach($product_pdf_weight as $item) { $weight = $item->attributes(); var_dump($weight); var_dump('<hr>'); // $WeightItem = new SimpleXMLElement($item->asXML()); // $weight = $WeightItem->xpath("//Name"); // var_dump($weight); // $weight = $weight['Value']; } exit; return $weight; } $ean = '0013803146813'; $icecat = new IceCat($ean, 'en'); echo '<br>'; echo $icecat->getProductWeight(); " array(1) { [0]=> object(SimpleXMLElement)#57 (1) { ["#attributes"]=> array(3) { ["ID"]=> string(4) "2715" ["langid"]=> string(1) "1" ["Value"]=> string(17) "Maximum scan size" } } } string(4) "" array(1) { [0]=> object(SimpleXMLElement)#56 (1) { ["#attributes"]=> array(3) { ["ID"]=> string(4) "2985" ["langid"]=> string(1) "1" ["Value"]=> string(27) "Optical scanning resolution" } } } string(4) "" array(1) { [0]=> object(SimpleXMLElement)#55 (1) { ["#attributes"]=> array(3) { ["ID"]=> string(4) "3131" ["langid"]=> string(1) "1" ["Value"]=> string(15) "Colour scanning" } } } string(4) "" array(1) { [0]=> object(SimpleXMLElement)#57 (1) { ["#attributes"]=> array(3) { ["ID"]=> string(5) "30724" ["langid"]=> string(1) "1" ["Value"]=> string(15) "Duplex scanning" } } } string(4) "" array(1) { [0]=> object(SimpleXMLElement)#56 (1) { ["#attributes"]=> array(3) { ["ID"]=> string(6) "615813" ["langid"]=> string(1) "1" ["Value"]=> string(18) "Input colour depth" } } } string(4) "" array(1) { [0]=> object(SimpleXMLElement)#55 (1) { ["#attributes"]=> array(3) { ["ID"]=> string(6) "615854" ["langid"]=> string(1) "1" ["Value"]=> string(19) "Output colour depth" } } } string(4) "" array(1) { [0]=> object(SimpleXMLElement)#57 (1) { ["#attributes"]=> array(3) { ["ID"]=> string(4) "1445" ["langid"]=> string(1) "1" ["Value"]=> string(17) "Gray scale levels" } } } string(4) "" array(1) { [0]=> object(SimpleXMLElement)#56 (1) { ["#attributes"]=> array(3) { ["ID"]=> string(4) "2605" ["langid"]=> string(1) "1" ["Value"]=> string(12) "Scanner type" } } } string(4) "" array(1) { [0]=> object(SimpleXMLElement)#55 (1) { ["#attributes"]=> array(3) { ["ID"]=> string(4) "5487" ["langid"]=> string(1) "1" ["Value"]=> string(17) "Colour of product" } } } string(4) "" array(1) { [0]=> object(SimpleXMLElement)#57 (1) { ["#attributes"]=> array(3) { ["ID"]=> string(4) "4899" ["langid"]=> string(1) "1" ["Value"]=> string(11) "Sensor type" } } } string(4) "" array(1) { [0]=> object(SimpleXMLElement)#56 (1) { ["#attributes"]=> array(3) { ["ID"]=> string(6) "619793" ["langid"]=> string(1) "1" ["Value"]=> string(22) "Daily duty cycle (max)" } } } string(4) "" array(1) { [0]=> object(SimpleXMLElement)#55 (1) { ["#attributes"]=> array(3) { ["ID"]=> string(4) "5543" ["langid"]=> string(1) "1" ["Value"]=> string(12) "Light source" } } } string(4) "" array(1) { [0]=> object(SimpleXMLElement)#57 (1) { ["#attributes"]=> array(3) { ["ID"]=> string(4) "3177" ["langid"]=> string(1) "1" ["Value"]=> string(41) "Auto document feeder (ADF) input capacity" } } } string(4) "" array(1) { [0]=> object(SimpleXMLElement)#56 (1) { ["#attributes"]=> array(3) { ["ID"]=> string(6) "619834" ["langid"]=> string(1) "1" ["Value"]=> string(30) "Scanning media types supported" } } } string(4) "" array(1) { [0]=> object(SimpleXMLElement)#55 (1) { ["#attributes"]=> array(3) { ["ID"]=> string(5) "11529" ["langid"]=> string(1) "1" ["Value"]=> string(39) "Auto Document Feeder (ADF) media weight" } } } string(4) "" array(1) { [0]=> object(SimpleXMLElement)#57 (1) { ["#attributes"]=> array(3) { ["ID"]=> string(6) "615486" ["langid"]=> string(1) "1" ["Value"]=> string(19) "Standard interfaces" } } } string(4) "" array(1) { [0]=> object(SimpleXMLElement)#56 (1) { ["#attributes"]=> array(3) { ["ID"]=> string(4) "2257" ["langid"]=> string(1) "1" ["Value"]=> string(27) "Power consumption (typical)" } } } string(4) "" array(1) { [0]=> object(SimpleXMLElement)#55 (1) { ["#attributes"]=> array(3) { ["ID"]=> string(4) "9104" ["langid"]=> string(1) "1" ["Value"]=> string(27) "Power consumption (standby)" } } } string(4) "" array(1) { [0]=> object(SimpleXMLElement)#57 (1) { ["#attributes"]=> array(3) { ["ID"]=> string(5) "27753" ["langid"]=> string(1) "1" ["Value"]=> string(15) "Input frequency" } } } string(4) "" array(1) { [0]=> object(SimpleXMLElement)#56 (1) { ["#attributes"]=> array(3) { ["ID"]=> string(4) "4629" ["langid"]=> string(1) "1" ["Value"]=> string(13) "Input voltage" } } } string(4) "" array(1) { [0]=> object(SimpleXMLElement)#55 (1) { ["#attributes"]=> array(3) { ["ID"]=> string(6) "617692" ["langid"]=> string(1) "1" ["Value"]=> string(35) "Windows operating systems supported" } } } string(4) "" array(1) { [0]=> object(SimpleXMLElement)#57 (1) { ["#attributes"]=> array(3) { ["ID"]=> string(4) "3765" ["langid"]=> string(1) "1" ["Value"]=> string(27) "Operating temperature (T-T)" } } } string(4) "" array(1) { [0]=> object(SimpleXMLElement)#56 (1) { ["#attributes"]=> array(3) { ["ID"]=> string(4) "2937" ["langid"]=> string(1) "1" ["Value"]=> string(33) "Operating relative humidity (H-H)" } } } string(4) "" array(1) { [0]=> object(SimpleXMLElement)#55 (1) { ["#attributes"]=> array(3) { ["ID"]=> string(4) "9056" ["langid"]=> string(1) "1" ["Value"]=> string(27) "Operating temperature (T-T)" } } } string(4) "" array(1) { [0]=> object(SimpleXMLElement)#57 (1) { ["#attributes"]=> array(3) { ["ID"]=> string(4) "3207" ["langid"]=> string(1) "1" ["Value"]=> string(21) "Energy Star certified" } } } string(4) "" array(1) { [0]=> object(SimpleXMLElement)#56 (1) { ["#attributes"]=> array(3) { ["ID"]=> string(4) "1525" ["langid"]=> string(1) "1" ["Value"]=> string(6) "Weight" } } } string(4) "" array(1) { [0]=> object(SimpleXMLElement)#55 (1) { ["#attributes"]=> array(3) { ["ID"]=> string(4) "5143" ["langid"]=> string(1) "1" ["Value"]=> string(5) "Width" } } } string(4) "" array(1) { [0]=> object(SimpleXMLElement)#57 (1) { ["#attributes"]=> array(3) { ["ID"]=> string(4) "5145" ["langid"]=> string(1) "1" ["Value"]=> string(5) "Depth" } } } string(4) "" array(1) { [0]=> object(SimpleXMLElement)#56 (1) { ["#attributes"]=> array(3) { ["ID"]=> string(4) "4625" ["langid"]=> string(1) "1" ["Value"]=> string(6) "Height" } } }
After Drupal update show Errors
I've updated a Drupal from version 7.2 to version 7.26. After do that I've some errors: throw new EntityMalformedException (Missing bundle property on entity of type taxonomy_term) It appears in file common . inc: if (!isset($entity->{$info['entity keys']['bundle']}) || $entity->{$info['entity keys']['bundle']} === '') { I insert some "echos" to see when is shown this message, and I get this: var_dump( $info['entity keys']); array(4) { ["id"]=> string(3) "tid" ["bundle"]=> string(23) "vocabulary_machine_name" ["label"]=> string(4) "name" ["revision"]=> string(0) "" } array(4) { ["id"]=> string(3) "tid" ["bundle"]=> string(23) "vocabulary_machine_name" ["label"]=> string(4) "name" ["revision"]=> string(0) "" } var_dump( $info); array(22) { ["label"]=> string(22) "Término de taxonomía" ["controller class"]=> string(22) "TaxonomyTermController" ["base table"]=> string(18) "taxonomy_term_data" ["uri callback"]=> string(17) "taxonomy_term_uri" ["fieldable"]=> bool(true) ["entity keys"]=> array(4) { ["id"]=> string(3) "tid" ["bundle"]=> string(23) "vocabulary_machine_name" ["label"]=> string(4) "name" ["revision"]=> string(0) "" } ["bundle keys"]=> array(1) { ["bundle"]=> string(12) "machine_name" } ["bundles"]=> array(3) { ["pais"]=> array(3) { ["label"]=> string(7) "Regions" ["admin"]=> array(4) { ["path"]=> string(58) "admin/structure/taxonomy/%taxonomy_vocabulary_machine_name" ["real path"]=> string(29) "admin/structure/taxonomy/pais" ["bundle argument"]=> int(3) ["access arguments"]=> array(1) { [0]=> string(19) "administer taxonomy" } } ["rdf_mapping"]=> array(5) { ["rdftype"]=> array(1) { [0]=> string(12) "skos:Concept" } ["name"]=> array(1) { ["predicates"]=> array(2) { [0]=> string(10) "rdfs:label" [1]=> string(14) "skos:prefLabel" } } ["description"]=> array(1) { ["predicates"]=> array(1) { [0]=> string(15) "skos:definition" } } ["vid"]=> array(2) { ["predicates"]=> array(1) { [0]=> string(13) "skos:inScheme" } ["type"]=> string(3) "rel" } ["parent"]=> array(2) { ["predicates"]=> array(1) { [0]=> string(12) "skos:broader" } ["type"]=> string(3) "rel" } } } ["auto_created_voc38877"]=> array(3) { ["label"]=> string(10) "Provincias" ["admin"]=> array(4) { ["path"]=> string(58) "admin/structure/taxonomy/%taxonomy_vocabulary_machine_name" ["real path"]=> string(46) "admin/structure/taxonomy/auto_created_voc38877" ["bundle argument"]=> int(3) ["access arguments"]=> array(1) { [0]=> string(19) "administer taxonomy" } } ["rdf_mapping"]=> array(5) { ["rdftype"]=> array(1) { [0]=> string(12) "skos:Concept" } ["name"]=> array(1) { ["predicates"]=> array(2) { [0]=> string(10) "rdfs:label" [1]=> string(14) "skos:prefLabel" } } ["description"]=> array(1) { ["predicates"]=> array(1) { [0]=> string(15) "skos:definition" } } ["vid"]=> array(2) { ["predicates"]=> array(1) { [0]=> string(13) "skos:inScheme" } ["type"]=> string(3) "rel" } ["parent"]=> array(2) { ["predicates"]=> array(1) { [0]=> string(12) "skos:broader" } ["type"]=> string(3) "rel" } } } ["busquedas_destacadas_"]=> array(3) { ["label"]=> string(21) "Búsquedas destacadas" ["admin"]=> array(4) { ["path"]=> string(58) "admin/structure/taxonomy/%taxonomy_vocabulary_machine_name" ["real path"]=> string(46) "admin/structure/taxonomy/busquedas_destacadas_" ["bundle argument"]=> int(3) ["access arguments"]=> array(1) { [0]=> string(19) "administer taxonomy" } } ["rdf_mapping"]=> array(5) { ["rdftype"]=> array(1) { [0]=> string(12) "skos:Concept" } ["name"]=> array(1) { ["predicates"]=> array(2) { [0]=> string(10) "rdfs:label" [1]=> string(14) "skos:prefLabel" } } ["description"]=> array(1) { ["predicates"]=> array(1) { [0]=> string(15) "skos:definition" } } ["vid"]=> array(2) { ["predicates"]=> array(1) { [0]=> string(13) "skos:inScheme" } ["type"]=> string(3) "rel" } ["parent"]=> array(2) { ["predicates"]=> array(1) { [0]=> string(12) "skos:broader" } ["type"]=> string(3) "rel" } } } } ["view modes"]=> array(1) { ["full"]=> array(2) { ["label"]=> string(34) "Página de términos de taxonomía" ["custom settings"]=> bool(false) } } ["static cache"]=> bool(true) ["field cache"]=> bool(true) ["load hook"]=> string(18) "taxonomy_term_load" ["translation"]=> array(0) { } ["schema_fields_sql"]=> array(1) { ["base table"]=> array(8) { [0]=> string(3) "tid" [1]=> string(3) "vid" [2]=> string(4) "name" [3]=> string(11) "description" [4]=> string(6) "format" [5]=> string(6) "weight" [6]=> string(8) "language" [7]=> string(9) "i18n_tsid" } } ["token type"]=> string(4) "term" ["access callback"]=> string(31) "entity_metadata_taxonomy_access" ["creation callback"]=> string(29) "entity_metadata_create_object" ["save callback"]=> string(18) "taxonomy_term_save" ["deletion callback"]=> string(20) "taxonomy_term_delete" ["view callback"]=> string(27) "entity_metadata_view_single" ["form callback"]=> string(34) "entity_metadata_form_taxonomy_term" ["configuration"]=> bool(false) } I supposed this is related with something missing in the database. But I can't find it. Any help, please? Thanks in advance.
I don't know how to "sort" arrays
I have this array : array(2) { [1]=> array(4) { ["name"]=> string(14) "Les Contenants" ["ordre"]=> string(1) "3" [9]=> array(1) { ["name"]=> string(20) "Corbeilles unitaires" } [10]=> array(1) { ["name"]=> string(6) "Mannes" } } [6]=> array(3) { ["name"]=> string(7) "L'utile" ["ordre"]=> string(1) "1" [133]=> array(3) { ["name"]=> string(7) "Paniers" [192]=> array(1) { ["name"]=> string(13) "à provisions" } [193]=> array(2) { ["name"]=> string(13) "anses mobiles" [201]=> array(1) { ["name"]=> string(19) "non doublés tissus" } } } } } I need to sort this array on this key : array[$i]['ordre'] on an ascending order. The results must be : array(2) { [6]=> array(3) { ["name"]=> string(7) "L'utile" ["ordre"]=> string(1) "1" [133]=> array(3) { ["name"]=> string(7) "Paniers" [192]=> array(1) { ["name"]=> string(13) "à provisions" } [193]=> array(2) { ["name"]=> string(13) "anses mobiles" [201]=> array(1) { ["name"]=> string(19) "non doublés tissus" } } } } [1]=> array(4) { ["name"]=> string(14) "Les Contenants" ["ordre"]=> string(1) "3" [9]=> array(1) { ["name"]=> string(20) "Corbeilles unitaires" } [10]=> array(1) { ["name"]=> string(6) "Mannes" } } } Have you an idea to do it ?
usort($array,function($a,$b) {return $a['ordre']-$b['ordre'];}); Or, if your version of PHP doesn't support lambda-functions: usort($array,create_function('$a,$b','return $a["ordre"]-$b["ordre"];'));
How to get object(stdClass) from array
Given the array below, how do I get values of object(stdClass) such as Pcv (campus Aalst), Mss ( Privaatpraktijk kinesitherapie Peeters Stefaan ), and so on? array(106) { [0]=> object(stdClass)#8 (45) { ["nid"]=> string(3) "199" ["type"]=> string(11) "stageplaats" ["language"]=> string(2) "nl" ["uid"]=> string(2) "33" ["status"]=> string(1) "1" ["created"]=> string(10) "1291279334" ["changed"]=> string(10) "1301323146" ["comment"]=> string(1) "0" ["promote"]=> string(1) "0" ["moderate"]=> string(1) "0" ["sticky"]=> string(1) "0" ["tnid"]=> string(1) "0" ["translate"]=> string(1) "0" ["vid"]=> string(3) "206" ["revision_uid"]=> string(2) "16" ["title"]=> string(18) "Pcv (campus Aalst)" ["body"]=> string(0) "" ["teaser"]=> string(0) "" ["log"]=> string(0) "" ["revision_timestamp"]=> string(10) "1301323146" ["format"]=> string(1) "0" ["nd_switch_bm"]=> string(0) "" ["name"]=> string(12) "stage.revaki" ["picture"]=> string(0) "" ["data"]=> string(72) "a:1:{s:13:"form_build_id";s:37:"form-f89b99e4a5249b192ff472579b826b00";}" ["field_stagedomein_audiologo"]=> array(1) { [0]=> array(1) { ["value"]=> NULL } } ["field_stagedomein_geneeskunde"]=> array(1) { [0]=> array(1) { ["value"]=> NULL } } ["field_stagedomein_lo"]=> array(1) { [0]=> array(1) { ["value"]=> NULL } } ["field_stagedomein_revaki"]=> array(1) { [0]=> array(1) { ["value"]=> string(3) "152" } } ["field_stagedomein_verpleeg"]=> array(1) { [0]=> array(1) { ["value"]=> NULL } } ["field_status"]=> array(1) { [0]=> array(1) { ["value"]=> string(14) "niet opgegeven" } } ["field_status_datum"]=> array(1) { [0]=> array(4) { ["value"]=> NULL ["timezone"]=> string(15) "Europe/Brussels" ["timezone_db"]=> string(15) "Europe/Brussels" ["date_type"]=> string(4) "date" } } ["field_locatieview"]=> array(1) { [0]=> array(1) { ["nid"]=> string(3) "179" } } ["field_status_extra"]=> array(1) { [0]=> array(1) { ["value"]=> NULL } } ["field_status_stagedomein"]=> array(1) { [0]=> array(1) { ["value"]=> string(6) "Actief" } } ["field_maxcapstud_stagedomein"]=> array(1) { [0]=> array(1) { ["value"]=> string(2) "18" } } ["field_status_bevestigd_door"]=> array(1) { [0]=> array(1) { ["nid"]=> NULL } } ["field_aanpers_stageplaats"]=> array(1) { [0]=> array(1) { ["nid"]=> NULL } } ["field_extrainfo_stagedomein"]=> array(1) { [0]=> array(2) { ["value"]=> string(37) "Capaciteit: 3 studenten alle periodes" ["format"]=> NULL } } ["field_percapaciteit_stageplaats"]=> array(1) { [0]=> array(1) { ["value"]=> NULL } } ["field_aanplaats_stageplaats"]=> array(1) { [0]=> array(1) { ["value"]=> NULL } } ["field_mentoren"]=> array(1) { [0]=> array(1) { ["nid"]=> string(3) "178" } } ["field_persoon_stagedomein"]=> array(1) { [0]=> array(1) { ["nid"]=> NULL } } ["has_body"]=> string(1) "0" ["taxonomy"]=> array(0) { } } [1]=> object(stdClass)#24 (45) { ["nid"]=> string(3) "211" ["type"]=> string(11) "stageplaats" ["language"]=> string(2) "nl" ["uid"]=> string(2) "33" ["status"]=> string(1) "1" ["created"]=> string(10) "1291281467" ["changed"]=> string(10) "1301323440" ["comment"]=> string(1) "0" ["promote"]=> string(1) "0" ["moderate"]=> string(1) "0" ["sticky"]=> string(1) "0" ["tnid"]=> string(1) "0" ["translate"]=> string(1) "0" ["vid"]=> string(3) "218" ["revision_uid"]=> string(2) "16" ["title"]=> string(53) "Mss ( Privaatpraktijk kinesitherapie Walravens Marc )" ["body"]=> string(0) "" ["teaser"]=> string(0) "" ["log"]=> string(0) "" ["revision_timestamp"]=> string(10) "1301323440" ["format"]=> string(1) "0" ["nd_switch_bm"]=> string(0) "" ["name"]=> string(12) "stage.revaki" ["picture"]=> string(0) "" ["data"]=> string(72) "a:1:{s:13:"form_build_id";s:37:"form-f89b99e4a5249b192ff472579b826b00";}" ["field_stagedomein_audiologo"]=> array(1) { [0]=> array(1) { ["value"]=> NULL } } ["field_stagedomein_geneeskunde"]=> array(1) { [0]=> array(1) { ["value"]=> NULL } } ["field_stagedomein_lo"]=> array(1) { [0]=> array(1) { ["value"]=> NULL } } ["field_stagedomein_revaki"]=> array(1) { [0]=> array(1) { ["value"]=> string(3) "128" } } ["field_stagedomein_verpleeg"]=> array(1) { [0]=> array(1) { ["value"]=> NULL } } ["field_status"]=> array(1) { [0]=> array(1) { ["value"]=> string(14) "niet opgegeven" } } ["field_status_datum"]=> array(1) { [0]=> array(4) { ["value"]=> NULL ["timezone"]=> string(15) "Europe/Brussels" ["timezone_db"]=> string(15) "Europe/Brussels" ["date_type"]=> string(4) "date" } } ["field_locatieview"]=> array(1) { [0]=> array(1) { ["nid"]=> string(3) "210" } } ["field_status_extra"]=> array(1) { [0]=> array(1) { ["value"]=> NULL } } ["field_status_stagedomein"]=> array(1) { [0]=> array(1) { ["value"]=> string(6) "Actief" } } ["field_maxcapstud_stagedomein"]=> array(1) { [0]=> array(1) { ["value"]=> string(1) "4" } } ["field_status_bevestigd_door"]=> array(1) { [0]=> array(1) { ["nid"]=> NULL } } ["field_aanpers_stageplaats"]=> array(1) { [0]=> array(1) { ["nid"]=> NULL } } ["field_extrainfo_stagedomein"]=> array(1) { [0]=> array(2) { ["value"]=> string(40) "Capaciteit: 1 student in periode 3 tem 6" ["format"]=> NULL } } ["field_percapaciteit_stageplaats"]=> array(1) { [0]=> array(1) { ["value"]=> NULL } } ["field_aanplaats_stageplaats"]=> array(1) { [0]=> array(1) { ["value"]=> NULL } } ["field_mentoren"]=> array(1) { [0]=> array(1) { ["nid"]=> string(3) "208" } } ["field_persoon_stagedomein"]=> array(1) { [0]=> array(1) { ["nid"]=> NULL } } ["has_body"]=> string(1) "0" ["taxonomy"]=> array(0) { } } [2]=> object(stdClass)#26 (45) { ["nid"]=> string(3) "217" ["type"]=> string(11) "stageplaats" ["language"]=> string(2) "nl" ["uid"]=> string(2) "33" ["status"]=> string(1) "1" ["created"]=> string(10) "1291281906" ["changed"]=> string(10) "1301323440" ["comment"]=> string(1) "0" ["promote"]=> string(1) "0" ["moderate"]=> string(1) "0" ["sticky"]=> string(1) "0" ["tnid"]=> string(1) "0" ["translate"]=> string(1) "0" ["vid"]=> string(3) "224" ["revision_uid"]=> string(2) "16" ["title"]=> string(54) "Mss ( Privaatpraktijk kinesitherapie Peeters Stefaan )" ["body"]=> string(0) "" ["teaser"]=> string(0) "" ["log"]=> string(0) "" ["revision_timestamp"]=> string(10) "1301323440" ["format"]=> string(1) "0" ["nd_switch_bm"]=> string(0) "" ["name"]=> string(12) "stage.revaki" ["picture"]=> string(0) "" ["data"]=> string(72) "a:1:{s:13:"form_build_id";s:37:"form-f89b99e4a5249b192ff472579b826b00";}" ["field_stagedomein_audiologo"]=> array(1) { [0]=> array(1) { ["value"]=> NULL } } ["field_stagedomein_geneeskunde"]=> array(1) { [0]=> array(1) { ["value"]=> NULL } } ["field_stagedomein_lo"]=> array(1) { [0]=> array(1) { ["value"]=> NULL } }
The object is at the index 0 in the array, so you just access the property names from there echo $theArray[0]->title; For more information, please see the PHP manual's Language Reference, especially the chapter on Arrays and the chapter on Objects