بایت اندیس جاری (xml_get_current_byte_index)
تابع xml_get_current_byte_index جای خطا را با «شماره بایت» می دهد. «بایت اندیس (Byte Index)» یعنی فاصله بایتی از ابتدای داده. پس مکان دقیق را بهتر می فهمیم.
تعریف و کاربرد
طبق منبع، xml_get_current_byte_index(parser) اندیس بایت فعلی پارسر XML را برمی گرداند. در موفقیت، عدد می دهد؛ در شکست، FALSE می آید.
سینتکس (Syntax)
xml_get_current_byte_index(<parser>)
مثال از منبع
<?php
// Invalid xml file
$xmlfile = 'test.xml';
$xmlparser = xml_parser_create();
$fp = fopen($xmlfile, 'r');
while ($xmldata = fread($fp, 4096)) {
// parse the data chunk
if (!xml_parse($xmlparser, $xmldata, feof($fp))) {
die(
print "ERROR: "
. xml_error_string(xml_get_error_code($xmlparser))
. "<br>Line: "
. xml_get_current_line_number($xmlparser)
. "<br>Column: "
. xml_get_current_column_number($xmlparser)
. "<br>Byte Index: "
. xml_get_current_byte_index($xmlparser)
. "<br>"
);
}
}
xml_parser_free($xmlparser);
?>
گام های عملی سریع
- پارسر XML را بساز.
- داده را تکه تکه بخوان.
- در خطا، اندیس بایت جاری را گزارش کن.
نکته: برای تحلیل کامل، شماره خط و ستون را هم نمایش بده.
هشدار: پس از پایان کار، xml_parser_free() را فراموش نکن.
جمع بندی سریع
- بایت اندیس جاری مکان دقیق خطاست.
- خروجی موفق، یک عدد است.
- در شکست، مقدار
FALSEمی آید. - همراه خط و ستون، عیب یابی سریع تر است.
منابع مرتبط
W3Schools: xml_get_current_byte_index — تعریف و نمونه.
W3Schools: XML Parser Reference — فهرست توابع XML.
برای ادامه عیب یابی XML، صفحات رشته خطای XML و utf8_encode را هم ببین.