Ошибка php: XML или текстовое объявление не в начале объекта Источник

всякий раз, когда я использую следующий код в файлах PHP, он дает мне ошибку (Ошибка: XML или текстовое объявление не в начале источника объекта)

<?xml version='1.0' encoding='utf-8'?>

не знаю какое может быть решение

пожалуйста помоги

заранее спасибо

<?xml version='1.0' encoding='utf-8'?><rows><page>1</page><records>15</records><total>1</total><row id='18'><cell>18</cell><cell>2011-9-13</cell><cell>AL</cell><cell>2011-10-19</cell><cell>2011-10-21</cell><cell>3</cell><cell></cell><cell></cell><cell>Waiting for approval</cell><cell>mohan</cell><cell>Davinder Singh</cell></row><row id='17'><cell>17</cell><cell>2011-5-25</cell><cell>SL</cell><cell>2011-5-19</cell><cell>2011-5-19</cell><cell>1</cell><cell></cell><cell></cell><cell>Approved</cell><cell>Davinder</cell><cell>Kavita y</cell></row><row id='16'><cell>16</cell><cell>2011-5-25</cell><cell>SL</cell><cell>2011-5-24</cell><cell>2011-5-24</cell><cell>1</cell><cell></cell><cell></cell><cell>Approved</cell><cell></cell><cell>Kavita y</cell></row><row id='15'><cell>15</cell><cell>2011-5-26</cell><cell>AL</cell><cell>2011-7-08</cell><cell>2011-7-12</cell><cell>0</cell><cell></cell><cell></cell><cell>Disapproved</cell><cell></cell><cell>Kavita y</cell></row><row id='14'><cell>14</cell><cell>2011-5-25</cell><cell>AL</cell><cell>2011-6-30</cell><cell>2011-7-02</cell><cell>3</cell><cell></cell><cell></cell><cell>Approved</cell><cell></cell><cell>Kavita y</cell></row><row id='13'><cell>13</cell><cell>2011-9-14</cell><cell>CL</cell><cell>2011-6-15</cell><cell>2011-6-15</cell><cell>1</cell><cell></cell><cell></cell><cell>Waiting for approval</cell><cell></cell><cell>Kavita y</cell></row><row id='12'><cell>12</cell><cell>2011-5-25</cell><cell>CL</cell><cell>2011-6-10</cell><cell>2011-6-12</cell><cell>3</cell><cell></cell><cell></cell><cell>Waiting for approval</cell><cell></cell><cell>Kavita y</cell></row><row id='11'><cell>11</cell><cell>2011-5-25</cell><cell>SL</cell><cell>2011-5-20</cell><cell>2011-5-17</cell><cell>4</cell><cell></cell><cell></cell><cell>Waiting for approval</cell><cell></cell><cell>Kavita y</cell></row><row id='10'><cell>10</cell><cell>2011-5-25</cell><cell>CL</cell><cell>2011-6-03</cell><cell>2011-6-05</cell><cell>3</cell><cell></cell><cell></cell><cell>Waiting for approval</cell><cell>mohan</cell><cell>Davinder Singh</cell></row><row id='9'><cell>9</cell><cell>2011-5-26</cell><cell>SL</cell><cell>2011-5-18</cell><cell>2011-5-22</cell><cell>5</cell><cell></cell><cell></cell><cell>Waiting for approval</cell><cell>mohan</cell><cell>Davinder Singh</cell></row><row id='8'><cell>8</cell><cell>2011-5-24</cell><cell>AL</cell><cell>2011-5-20</cell><cell>2011-5-20</cell><cell>0</cell><cell></cell><cell></cell><cell>Disapproved</cell><cell>mohan</cell><cell>Davinder Singh</cell></row><row id='7'><cell>7</cell><cell>2011-5-24</cell><cell>CL</cell><cell>2011-5-20</cell><cell>2011-5-20</cell><cell>1</cell><cell></cell><cell></cell><cell>Waiting for approval</cell><cell>mohan</cell><cell>Davinder Singh</cell></row><row id='4'><cell>4</cell><cell>2011-9-14</cell><cell>SL</cell><cell>2011-5-20</cell><cell>2011-5-20</cell><cell>1</cell><cell></cell><cell></cell><cell>Waiting for approval</cell><cell>mohan</cell><cell>Davinder Singh</cell></row><row id='3'><cell>3</cell><cell>2011-5-24</cell><cell>SL</cell><cell>2011-5-20</cell><cell>2011-5-20</cell><cell>1</cell><cell></cell><cell></cell><cell>Waiting for approval</cell><cell>mohan</cell><cell>Davinder Singh</cell></row><row id='1'><cell>1</cell><cell>2011-5-24</cell><cell>SL</cell><cell>2011-5-20</cell><cell>2011-5-22</cell><cell>0</cell><cell>dd</cell><cell>remarks</cell><cell>Disapproved</cell><cell>mohan</cell><cell>Davinder Singh</cell></row></rows>

и php-код

header("Content-type: text/xml;charset=utf-8");

$s = "<?xml version='1.0' encoding='utf-8'?>";
$s .=  "<rows>";
$s .= "<page>".$page."</page>";
$s .= "<records>".$count."</records>";

$s .= "<total>".$total_pages."</total>";


// be sure to put text data in CDATA
while($row = mysql_fetch_array($result,MYSQL_ASSOC)) {


    $s .= "<row id='". $row['fld_id']."'>";

    $s .= "<cell>". $row['fld_id']."</cell>";   
    $s .= "<cell><![CDATA[". getDepartmentName($row['deptSr'])."]]></cell>";
    $s .= "<cell>". $row['email']."</cell>";
    $s .= "<cell>". $row['fname']."</cell>";
    $s .= "<cell>". $row['lname']."</cell>";
    $s .= "<cell>". $row['password']."</cell>";

    $s .= "<cell>". listlevel($row['level'])."</cell>"; 
    $s .= "<cell>". date('Y-m-d G:i:s', $row['date_create'])."</cell>";
    $s .= "<cell>". date('Y-m-d G:i:s', $row['last_login'])."</cell>";  
    $s .= "<cell>". $row['ip_addr']."</cell>";
    $s .= "<cell>". $row['dob']."</cell>";  
    $s .= "<cell>". $row['street']."</cell>";       
    $s .= "<cell>". $row['phone_mob']."</cell>";        
    $s .= "<cell>". $row['phone_home']."</cell>";   
    $s .= "<cell>". liststatus($row['fld_enabled'])."</cell>";  

    $s .= "</row>";
}
$s .= "</rows>"; 

echo $s;

person dave    schedule 16.11.2011    source источник
comment
что вызывает ошибку? PHP или какие-то другие инструменты? Присутствует ли вообще какой-либо PHP-код?   -  person Gordon    schedule 16.11.2011
comment
записи поступают из базы данных, а php выдает результат в формате xml. На одном сервере работает, а на остальных не везет   -  person dave    schedule 16.11.2011
comment
хорошо, а что выдает ошибку? Браузер? Или PHP? Определенный кусок кода? Если это не short_open_tag, нам нужна дополнительная информация. Есть ли какие-либо пробелы или метки ByteOrder перед прологом XML? Или где-то есть болтающиеся прологи?   -  person Gordon    schedule 16.11.2011
comment
Вот эта штука: <?xml version="1.0" encoding="utf-8"?> — это пролог. Должен быть только один. Также не могли бы вы проверить исходный код страницы результатов, которая выдает ошибку, и убедиться, что перед прологом нет пробелов или забавных символов.   -  person Gordon    schedule 16.11.2011
comment
хорошо, так что я должен удалить его ?? но тот же код работает на одном сервере   -  person dave    schedule 16.11.2011
comment
давайте продолжим обсуждение в чате   -  person dave    schedule 16.11.2011
comment
Вы используете WordPress? Причина, по которой я спрашиваю, заключается в том, что я искал сообщение об ошибке в Google, и WordPress появляется во многих результатах.   -  person Herbert    schedule 16.11.2011
comment
Вы по-прежнему не указали ответ на вопрос при возникновении этой ошибки. Ясно, что это происходит не тогда, когда вы создаете XML, а когда пытаетесь его использовать. Как вы это делаете, какой код обращается к этому XML? Кроме того, я не получаю четыре голоса, учитывая ошибку + код = решение, пожалуйста, во вставке вопроса.   -  person CodeCaster    schedule 16.11.2011
comment
нет, это вообще не вордпресс. это пришло после выполнения половины страницы. в любом случае, проблема решена. спасибо   -  person dave    schedule 22.11.2011


Ответы (1)


XML или текстовое объявление не в начале объекта указывает, что пролог не является первой строкой вывода. Скорее всего, пустая строка каким-то образом попадает в ваш вывод. Эта ошибка не уникальна для WordPress; однако, как я упоминал в своем комментарии, я выполнил поиск сообщения об ошибке в Google, и во многих результатах появляется WordPress. Если вы не используете WordPress, пожалуйста, не обращайте внимания на оставшуюся часть этого ответа.

Отказ от ответственности: я ничего не знаю о WordPress, поэтому не хочу отвечать в этом качестве; однако, поскольку на момент написания этой статьи других ответов не было, я просто покажу вам, что нашел по этому вопросу.

Если вы используете WordPress, вы можете получить лучшие ответы, добавив тег WordPress к своему вопросу. Гарантии нет, но это может привлечь внимание тех, кто более осведомлен, чем я.

person Herbert    schedule 16.11.2011