- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
<?php
// БИБЛИОТЕКА PHP: функции для работы с XML
// ФУНКЦИЯ: установка значения
// &$strDoc - текст документа
// $strField - имя поля (в документе к именам полей нужно добавлять символ "1", например: Name1
// $strValue - значение поля
function DocXML_Value(&$strDoc, $strField, $strValue) {
// определение длины текста
if (!($intDoc = strlen($strDoc))) return;
// определение кода поля
$strCode = $strField."1";
// определение длины кода поля
if (!($intCode = strlen($strCode))) return;
// поиск поля
if (!($intPos = stripos($strDoc, $strCode))) return;
// преобразование значения в кодировку UTF-8
$strText = iconv("WINDOWS-1251", "UTF-8", $strValue);
// определение результата
$strDoc = Left($strDoc, $intPos).$strText.Right($strDoc, $intDoc-$intPos-$intCode);
}
// ФУНКЦИЯ: получение текста таблицы
// &$strDoc - исходный документ
// $strField - имя поля (в документе к именам полей нужно добавлять символ "1", например: Name1
function DocXML_Table(&$strDoc, $strField) {
// определение длины текста
if (!($intDoc = strlen($strDoc))) return '';
// определение кода поля
$strCode = ">".$strField."1<";
// определение длины кода поля
if (!($intCode = strlen($strCode))) return '';
// поиск поля
if (!($intPos = stripos($strDoc, $strCode))) return '';
// поиск тега <w:tbl> до поля
if (!($intBegin = strripos(Left($strDoc, $intPos),'<w:tbl>'))) return '';
// поиск тега </w:tbl> после поля
if (!($intEnd = stripos($strDoc, '</w:tbl>', $intPos))) return '';
// определение результата
$strRes = Left(Right($strDoc,$intDoc-$intBegin),$intEnd-$intBegin+strlen('</w:tbl>'));
// определение результата
return $strRes;
}
// ФУНКЦИЯ: получение текста шаблона строки
// &$strTable - текст таблицы
// $strField - имя поля (в документе к именам полей нужно добавлять символ "1", например: Name1
function DocXML_Row(&$strTable, $strField) {
// определение длины текста
if (!($intTable = strlen($strTable))) return '';
// определение кода поля
$strCode = ">".$strField."1<";
// определение длины кода поля
if (!($intCode = strlen($strCode))) return '';
// поиск поля
if (!($intPos = stripos($strTable, $strCode))) return '';
// поиск тега <w:tr> до поля
if (!($intBegin = strripos(Left($strTable, $intPos),'<w:tr>'))) return '';
// поиск тега </w:tr> после поля
if (!($intEnd = stripos($strTable, '</w:tr>', $intPos))) return '';
// определение результата
return Left(Right($strTable,$intTable-$intBegin),$intEnd-$intBegin+strlen('</w:tr>'));
}
// ФУНКЦИЯ: замена строки в таблице
// &$strTable - текст таблицы
// $strField - имя поля (в документе к именам полей нужно добавлять символ "1", например: Name1
// $strRow - текст строки
function DocXML_RowSet(&$strTable, $strField, $strRow) {
// определение длины текста
if (!($intTable = strlen($strTable))) return;
// определение кода поля
$strCode = ">".$strField."1<";
// определение длины кода поля
if (!($intCode = strlen($strCode))) return;
// поиск поля
if (!($intPos = stripos($strTable, $strCode))) return;
// поиск тега <w:tr> до поля
if (!($intBegin = strripos(Left($strTable, $intPos),'<w:tr>'))) return;
// поиск тега </w:tr> после поля
if (!($intEnd = stripos($strTable, '</w:tr>', $intPos))) return;
// определение результата
$strTable = Left($strTable, $intBegin).Right($strTable, $intTable-$intEnd-strlen('</w:tr>'));
}
// ФУНКЦИЯ: добавление строки в таблицу
// &$strTable - текст таблицы
// $strRow - текст строки
function DocXML_RowAdd(&$strTable, $strRow) {
// определение длины текста
if (!($intTable = strlen($strTable))) return;
// определение результата
$strTable = Left($strTable, $intTable-strlen('</w:tbl>')).$strRow.'</w:tbl>';
}
Взято с SQL.ru http://www.sql.ru/forum/1141421/pomogite-prochitat-xml
codemonkey 08.02.2015 21:05 # +2
Stallman 08.02.2015 21:37 # +1
И давно это говноинклюды называются библиотеками?
Vasiliy 09.02.2015 13:31 # +1
guest 10.02.2015 19:20 # 0
roman-kashitsyn 10.02.2015 19:28 # 0
А вообще гуглится https://github.com/PHPOffice/PHPWord
Vasiliy 10.02.2015 19:30 # 0
roman-kashitsyn 10.02.2015 19:32 # 0
Vasiliy 10.02.2015 19:43 # 0
roman-kashitsyn 10.02.2015 19:44 # 0
>парсинг xml
>производительность
много думал.
guest 10.02.2015 19:38 # 0
Откуда быстрее в интерпретаторе?
guest8 01.05.2019 23:53 # −999
KOHCOjlbHblu_nemyx 02.05.2019 01:12 # −102
guest8 02.05.2019 11:09 # −999
Goh 03.05.2019 00:08 # −102
guest8 02.05.2019 01:44 # −999
guest8 02.05.2019 11:09 # −999
BEKTOPHblu_nETyX 02.05.2019 11:37 # +1
Пидоры ебаные
PACTPOBblu_nemyx 02.05.2019 22:28 # 0
guest8 03.05.2019 19:59 # −999
npo6JIEMHblu_nemyx 07.05.2019 02:14 # 0