So i've spent a lot of time to write a script that do a certain task , When I was testing it on my local machine it work fine, But when I upload it to my hosting it give me this error
Fatal error: Cannot use object of type DOMNodeList as array
this is a sample of what the script do
$xml = new DOMDocument();
$xml->loadHTML($html);
$xpath = new DOMXPath($xml);
$table =$xpath->query("//*[@style='background: #aaaaaa']")->item(0);
$rows = $table->getElementsByTagName("tr");
foreach ($rows as $row) {
if($row->getAttribute('align') === 'center') {
$cells = $row -> getElementsByTagName('td');
// I GET THE ERROR FROM THIS LINE
$add = mysql_escape_string(utf8_decode($cells[0]->nodeValue));
Some logic
}
Like I said it works fine on my local machine , And I get the error when I run it on my hosting
I used this code to get the loaded extensions because I thought that the problem might be from there
print_r(get_loaded_extensions());
And this is the result from my machine
Array
(
[0] => Core
[1] => bcmath
[2] => calendar
[3] => ctype
[4] => date
[5] => ereg
[6] => filter
[7] => ftp
[8] => hash
[9] => iconv
[10] => json
[11] => mcrypt
[12] => SPL
[13] => odbc
[14] => pcre
[15] => Reflection
[16] => session
[17] => standard
[18] => mysqlnd
[19] => tokenizer
[20] => zip
[21] => zlib
[22] => libxml
[23] => dom
[24] => PDO
[25] => bz2
[26] => SimpleXML
[27] => wddx
[28] => xml
[29] => xmlreader
[30] => xmlwriter
[31] => apache2handler
[32] => openssl
[33] => curl
[34] => mbstring
[35] => exif
[36] => gd
[37] => gettext
[38] => intl
[39] => mysql
[40] => mysqli
[41] => Phar
[42] => pdo_mysql
[43] => pdo_sqlite
[44] => soap
[45] => sockets
[46] => sqlite3
[47] => xmlrpc
[48] => xsl
[49] => mhash
)
and from my hosting
Array
(
[0] => Core
[1] => date
[2] => ereg
[3] => libxml
[4] => openssl
[5] => pcre
[6] => sqlite3
[7] => zlib
[8] => bcmath
[9] => bz2
[10] => calendar
[11] => ctype
[12] => curl
[13] => dom
[14] => hash
[15] => fileinfo
[16] => filter
[17] => ftp
[18] => gd
[19] => gettext
[20] => SPL
[21] => iconv
[22] => session
[23] => intl
[24] => json
[25] => mbstring
[26] => mcrypt
[27] => standard
[28] => mysql
[29] => mysqli
[30] => pgsql
[31] => mysqlnd
[32] => Phar
[33] => posix
[34] => pspell
[35] => Reflection
[36] => imap
[37] => SimpleXML
[38] => soap
[39] => sockets
[40] => exif
[41] => tidy
[42] => tokenizer
[43] => xml
[44] => xmlreader
[45] => xmlrpc
[46] => xmlwriter
[47] => xsl
[48] => zip
[49] => cgi-fcgi
[50] => PDO
[51] => pdo_sqlite
[52] => pdo_mysql
[53] => ionCube Loader
[54] => Zend Guard Loader
)
I have no idea why I get the error
getElementsByTagName()
returns a DOMNodeList
, which implements ArrayAccess
as of PHP 5.6.3. This is what allows you to access a node within via $cells[0]
.
In prior versions you'll need to use DOMNodeList's item()
method to access a specific index, e.g. $cells->item(0)
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With