За последние 24 часа нас посетили 52054 программиста и 1723 робота. Сейчас ищут 1839 программистов ...

Парсер PHP

Тема в разделе "PHP и базы данных", создана пользователем samara, 12 май 2015.

  1. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    name="MAX_FILE_SIZE" value="30000"

    тут осторожно, это всего ~29 килобайт, проще убрать этот тег.
     
  2. samara

    samara Новичок

    С нами с:
    5 май 2015
    Сообщения:
    46
    Симпатии:
    0
    pars.php
    Код (Text):
    1.  
    2. <?php
    3. //Файл test.xml содержит XML-документ с корневым элементом
    4. //и, по крайней мере, элемент /[root]/title.
    5. $file = $_FILES['userfile'];
    6. $xml = simplexml_load_file("$file");
    7.  
    8. //if (file_exists('$userfile')) {
    9. //    $xml = simplexml_load_file("$userfile");
    10. ///////////////////////////start
    11. echo $xml->Description->UserName;
    12. $UserName =  $xml->Description->UserName;
    13. echo $xml->Description->Division;
    14. $Division = $xml->Description->Division;
    15. echo $xml->Description->ExportDate;
    16. $ExportDate = $xml->Description->ExportDate;
    17. ///////////////////////////
    18. echo $xml->Data->Task->ShortTask->Activity ["Title"] ;
    19. $ActivityT = $xml->Data->Task->ShortTask->Activity ["Title"] ;
    20. echo $xml->Data->Task->ShortTask->CategoryType ;
    21. $CategoryType = $xml->Data->Task->ShortTask->CategoryType ;
    22. echo $xml->Data->Task->ShortTask->Object ["Title"] ;
    23. $ObjectT = $xml->Data->Task->ShortTask->Object ["Title"] ;
    24. echo $xml->Data->Task->ShortTask->TaskNumber ;
    25. $TaskNumber = $xml->Data->Task->ShortTask->TaskNumber ;
    26. echo $xml->Data->Task->ShortTask->TaskYear ;
    27. $TaskYear = $xml->Data->Task->ShortTask->TaskYear ;
    28. echo $xml->Data->Task->ShortTask->TaskDate ;
    29. $TaskDate =  $xml->Data->Task->ShortTask->TaskDate ;
    30. echo $xml->Data->Task->ShortTask->BeginDate ;
    31. $BeginDate = $xml->Data->Task->ShortTask->BeginDate ;
    32. echo $xml->Data->Task->ShortTask->BlankNumber ;
    33. $BlankNumber = $xml->Data->Task->ShortTask->BlankNumber ;
    34. echo $xml->Data->Task->ShortTask->ActivityPlace ["Title"] ;
    35. $ActivityPlaceT = $xml->Data->Task->ShortTask->ActivityPlace ["Title"] ;
    36. echo $xml->Data->Task->ShortTask->ActivityPhone ;
    37. $ActivityPhone = $xml->Data->Task->ShortTask->ActivityPhone ;
    38. echo $xml->Data->Task->ShortTask->CriminalCase ["Title"] ;
    39. $CriminalCaseT = $xml->Data->Task->ShortTask->CriminalCase ["Title"] ;
    40. echo $xml->Data->Task->ShortTask->CriminalCase ["Caption"] ;
    41. $CriminalCaseC = $xml->Data->Task->ShortTask->CriminalCase ["Caption"] ;
    42. echo $xml->Data->Task->ShortTask->CriminalCaseNumber ;
    43. $CriminalCaseNumber = $xml->Data->Task->ShortTask->CriminalCaseNumber ;
    44. echo $xml->Data->Task->ShortTask->CriminalCaseName ;
    45. $CriminalCaseName = $xml->Data->Task->ShortTask->CriminalCaseName ;
    46. echo $xml->Data->Task->ShortTask->JoinOpu ;
    47. $JoinOpu = $xml->Data->Task->ShortTask->JoinOpu ;
    48. echo $xml->Data->Task->ShortTask->Division ["Title"] ;
    49. $DivisionT = $xml->Data->Task->ShortTask->Division ["Title"] ;
    50. echo $xml->Data->Task->ShortTask->TaskType ;
    51. $TaskType = $xml->Data->Task->ShortTask->TaskType ;
    52. echo $xml->Data->Task->ShortTask->IMEI ;
    53. $IMEI = $xml->Data->Task->ShortTask->IMEI ;
    54. echo $xml->Data->Task->ShortTask->PrivacyLevel  ["Title"] ;
    55. $PrivacyLevelT = $xml->Data->Task->ShortTask->PrivacyLevel  ["Title"] ;
    56. echo $xml->Data->Task->ShortTask->PrivacyLevel  ["Caption"] ;
    57. $PrivacyLevelC = $xml->Data->Task->ShortTask->PrivacyLevel  ["Caption"] ;
    58. echo $xml->Data->Task->ShortTask->State ;
    59. $State = $xml->Data->Task->ShortTask->State ;
    60. ///////////////
    61. echo $xml->Data->Task->PhysAddress->Town ["Title"] ;
    62. $TownT = $xml->Data->Task->PhysAddress->Town ["Title"] ;
    63. echo $xml->Data->Task->PhysAddress->Town ["Caption"] ;
    64. $TownC = $xml->Data->Task->PhysAddress->Town ["Caption"] ;
    65. //////////////
    66. echo $xml->Data->Task->Physical->LastName  ["Title"] ;
    67. $LastNameT = $xml->Data->Task->Physical->LastName  ["Title"] ;
    68. echo $xml->Data->Task->Physical->LastName  ["Caption"] ;
    69. $LastNameC = $xml->Data->Task->Physical->LastName  ["Caption"] ;
    70. /////////////
    71. echo $xml->Data->Task->TaskInitiator->Subdivision ["Title"] ;
    72. $SubdivisionT = $xml->Data->Task->TaskInitiator->Subdivision ["Title"] ;
    73. echo $xml->Data->Task->TaskInitiator->Subdivision ["Caption"] ;
    74. $SubdivisionC = $xml->Data->Task->TaskInitiator->Subdivision ["Caption"] ;
    75. echo $xml->Data->Task->TaskInitiator->Agency ["Title"] ;
    76. $AgencyT = $xml->Data->Task->TaskInitiator->Agency ["Title"] ;
    77. echo $xml->Data->Task->TaskInitiator->FullName ["Title"] ;
    78. $FullNameT = $xml->Data->Task->TaskInitiator->FullName ["Title"] ;
    79. echo $xml->Data->Task->TaskInitiator->PhoneA ;
    80. $PhoneA = $xml->Data->Task->TaskInitiator->PhoneA ;
    81. echo $xml->Data->Task->TaskInitiator->PhoneB ;
    82. $PhoneB = $xml->Data->Task->TaskInitiator->PhoneB ;
    83. ///////////////////
    84. echo $xml->Data->Task->Orientation->CriminalDirection ["Title"] ;
    85. $CriminalDirectionT = $xml->Data->Task->Orientation->CriminalDirection ["Title"] ;
    86. echo $xml->Data->Task->Orientation->OrientationDescription ;
    87. $OrientationDescription = $xml->Data->Task->Orientation->OrientationDescription ;
    88. //////////////////
    89. echo $xml->Data->Task->Target->Target ;
    90. $Target = $xml->Data->Task->Target->Target ;
    91. /////////////////
    92. echo $xml->Data->Task->Sanction->JuridicalOrder ;
    93. $JuridicalOrder = $xml->Data->Task->Sanction->JuridicalOrder ;
    94. echo $xml->Data->Task->Sanction->Period ;
    95. $Period = $xml->Data->Task->Sanction->Period ;
    96. echo $xml->Data->Task->Sanction->SanctionDate ;
    97. $SanctionDate = $xml->Data->Task->Sanction->SanctionDate ;
    98. echo $xml->Data->Task->Sanction->IsFromConnectionMoment ;
    99. $IsFromConnectionMoment = $xml->Data->Task->Sanction->IsFromConnectionMoment ;
    100. //
    101. echo $xml->Data->Task->Sanction->SanctionPerson->Agency ;
    102. $Agency = $xml->Data->Task->Sanction->SanctionPerson->Agency ;
    103. echo $xml->Data->Task->Sanction->SanctionPerson->Post ;
    104. $Post = $xml->Data->Task->Sanction->SanctionPerson->Post ;
    105. echo $xml->Data->Task->Sanction->SanctionPerson->FullName ;
    106. $FullName = $xml->Data->Task->Sanction->SanctionPerson->FullName ;
    107. ////////////////
    108. echo $xml->Data->Task->AgencyDirectionAlt->CaptionTo ;
    109. $CaptionTo = $xml->Data->Task->AgencyDirectionAlt->CaptionTo ;
    110. echo $xml->Data->Task->AgencyDirectionAlt->CaptionFor ;
    111. $CaptionFor = $xml->Data->Task->AgencyDirectionAlt->CaptionFor ;
    112. ///////////////
    113. echo $xml->Data->Task->TaskEffectiveness->EffectivenessSign ;
    114. $EffectivenessSign = $xml->Data->Task->TaskEffectiveness->EffectivenessSign ;
    115. echo $xml->Data->Task->TaskEffectiveness->JudgeLegalize ;
    116. $JudgeLegalize = $xml->Data->Task->TaskEffectiveness->JudgeLegalize ;
    117. /////////////
    118. echo $xml->Data->Task->CriminalClauses->CriminalClause->ParagraphNumber ["Title"] ;
    119. $ParagraphNumberT = $xml->Data->Task->CriminalClauses->CriminalClause->ParagraphNumber ["Title"] ;
    120. echo $xml->Data->Task->CriminalClauses->CriminalClause->ParagraphNumber ["Caption"] ;
    121. $ParagraphNumberC = $xml->Data->Task->CriminalClauses->CriminalClause->ParagraphNumber ["Caption"] ;
    122. echo $xml->Data->Task->CriminalClauses->CriminalClause->SubparagraphNumber ;
    123. $SubparagraphNumber = $xml->Data->Task->CriminalClauses->CriminalClause->SubparagraphNumber ;
    124. /////////////end
    125. } else {
    126.   exit('Не удалось открыть файл xml.');
    127. }
    128. ////////////////
    129. $link = mysql_connect('localhost', 'root', 'sa');
    130. if (!$link) {
    131.     die('Ошибка соединения: ' . mysql_error());
    132. }
    133. mysql_select_db('test');
    134. mysql_query('set names utf8');
    135. mysql_query("INSERT INTO tbl_parser (UserName, Division, ExportDate, ActivityT, CategoryType, ObjectT, TaskNumber, TaskYear, TaskDate, BeginDate, BlankNumber, ActivityPlaceT, ActivityPhone, CriminalCaseT, CriminalCaseC, CriminalCaseNumber, CriminalCaseName, JoinOpu, DivisionT, TaskType, IMEI, PrivacyLevelT, PrivacyLevelC, State, TownT, TownC, LastNameT, LastNameC, SubdivisionT, SubdivisionC, AgencyT, FullNameT, PhoneA, PhoneB, CriminalDirectionT, OrientationDescription, Target, JuridicalOrder, Period, SanctionDate, IsFromConnectionMoment, Agency, Post, FullName, CaptionTo, CaptionFor, EffectivenessSign, JudgeLegalize, ParagraphNumberT, ParagraphNumberC, SubparagraphNumber) values ('$UserName', '$Division', '$ExportDate', '$ActivityT', '$CategoryType', '$ObjectT', '$TaskNumber', '$TaskYear', '$TaskDate', '$BeginDate', '$BlankNumber', '$ActivityPlaceT', '$ActivityPhone', '$CriminalCaseT', '$CriminalCaseC', '$CriminalCaseNumber', '$CriminalCaseName', '$JoinOpu', '$DivisionT', '$TaskType', '$IMEI', '$PrivacyLevelT', '$PrivacyLevelC', '$State', '$TownT', '$TownC', '$LastNameT', '$LastNameC', '$SubdivisionT', '$SubdivisionC', '$AgencyT', '$FullNameT', '$PhoneA', '$PhoneB', '$CriminalDirectionT', '$OrientationDescription', '$Target', '$JuridicalOrder', '$Period', '$SanctionDate', '$IsFromConnectionMoment', '$Agency', '$Post', '$FullName', '$CaptionTo', '$CaptionFor', '$EffectivenessSign', '$JudgeLegalize', '$ParagraphNumberT', '$ParagraphNumberC', '$SubparagraphNumber')");
    136. ///////////////////
    137.  
    138. ?>
    update.php
    Код (Text):
    1. <!-- Тип кодирования данных, enctype, ДОЛЖЕН БЫТЬ указан ИМЕННО так -->
    2. <form enctype="multipart/form-data" action="pars.php" method="POST">
    3.     <!-- Поле MAX_FILE_SIZE должно быть указано до поля загрузки файла -->
    4.     <input type="hidden" name="MAX_FILE_SIZE" value="300000000" />
    5.     <!-- Название элемента input определяет имя в массиве $_FILES -->
    6.     Выберите файл: <input name="userfile" type="file" />
    7.     <input type="submit" value="Загрузить в базу" />
    8. </form>
    9.  
     
  3. mr.akv

    mr.akv Активный пользователь

    С нами с:
    31 мар 2015
    Сообщения:
    1.604
    Симпатии:
    206
    уф. очень нагромождённый код
    Код (PHP):
    1. $shortTask = $xml->Data->Task->ShortTask;
    2. $ActivityT = $shortTask->Activity["Title"]; 
    закинул код в IDE. ошибку выдаёт на
    Код (Text):
    1. } else {
    непонятная первая скобочка. Глянул - а самого if условия то в коде у вас нет.

    Добавлено спустя 1 минуту 7 секунд:
    нашёл, условие есть, но вы и его до кучи закомментировали.
     
  4. samara

    samara Новичок

    С нами с:
    5 май 2015
    Сообщения:
    46
    Симпатии:
    0
    Я вставил этот кусок:
    Код (Text):
    1. $file = $_FILES['userfile'];
    2. $xml = simplexml_load_file("$file");
    вместо этого:
    Код (Text):
    1. //if (file_exists('$userfile')) {
    2. //    $xml = simplexml_load_file("$userfile");
    я так понимаю выглядеть должно условие так?
    Код (Text):
    1. $file = $_FILES['userfile'];
    2. if (file_exists('$userfile')) {
    3. $xml = simplexml_load_file("$file");
    отступление от темы, какое IDE для проверки использовать?!

    А вот с таким условием все работает:
    Код (Text):
    1. //if (file_exists('2835.xml')) {
    2. //    $xml = simplexml_load_file("2835.xml");
     
  5. mr.akv

    mr.akv Активный пользователь

    С нами с:
    31 мар 2015
    Сообщения:
    1.604
    Симпатии:
    206
    ну что вы, голубчик.
    IDE используется не для проверки. Это, по сути, удобный редактор. С подсветкой синтаксиса и большинства ошибок. Какой использовать - решать только вам. Основные: NetBeans, phpStorm. phpStorm общепринят. Я использую phpDesigner.
     
  6. samara

    samara Новичок

    С нами с:
    5 май 2015
    Сообщения:
    46
    Симпатии:
    0
    Код (Text):
    1. $file = $_FILES['userfile'];
    2. if (file_exists('$userfile')){
    3. $xml = simplexml_load_file("$file");
    рузультат :
    Код (Text):
    1. Не удалось открыть файл xml.
     
  7. mr.akv

    mr.akv Активный пользователь

    С нами с:
    31 мар 2015
    Сообщения:
    1.604
    Симпатии:
    206
    Так. ещё раз. Файл находится в массиве $_FILES, имя его ТАМ, в МАССИВЕ - username. Далее вы даёте элементу массива имя - $file, а проверяете на наличие файл username if (file_exists('$userfile')){ которого у вас не существует
     
  8. samara

    samara Новичок

    С нами с:
    5 май 2015
    Сообщения:
    46
    Симпатии:
    0
    делаю так:
    Код (Text):
    1. if (file_exists('$file')){
    Эффект тотже=(
     
  9. mr.akv

    mr.akv Активный пользователь

    С нами с:
    31 мар 2015
    Сообщения:
    1.604
    Симпатии:
    206
    Код (Text):
    1. if (file_exists($file)){
    попробуйте без кавычек
     
  10. samara

    samara Новичок

    С нами с:
    5 май 2015
    Сообщения:
    46
    Симпатии:
    0
    Бесполезно =( как можно обойти это? может другой какой вариант?
     
  11. mr.akv

    mr.akv Активный пользователь

    С нами с:
    31 мар 2015
    Сообщения:
    1.604
    Симпатии:
    206
  12. samara

    samara Новичок

    С нами с:
    5 май 2015
    Сообщения:
    46
    Симпатии:
    0
    Взошла такая мысль: если xml парсить не срузу в базу а в форму
    Код (Text):
    1. <textarea name="UserName" rows="2" cols="30" wrap="virtual"> UserName </textarea><br>
    и только потом отправлять в базу
    ........
    Код (Text):
    1. echo $xml->Description->UserName;
    2. $UserName =  $xml->Description->UserName;
    както можно передать в
    Код (Text):
    1. <textarea name="UserName" rows="2" cols="30" wrap="virtual"> UserName </textarea><br>
    Получилось засунуть вот-так, но ооооочень криво.....
    Код (Text):
    1. <textarea><? echo htmlspecialchars($UserName)?></textarea>
    реализовал так
    Код (Text):
    1. <input type="text" name="name" value="<? echo htmlspecialchars($name,ENT_QUOTES)?>">
    2. <textarea><? echo htmlspecialchars($text,ENT_QUOTES)?></textarea>
     
  13. samara

    samara Новичок

    С нами с:
    5 май 2015
    Сообщения:
    46
    Симпатии:
    0
    Сохранить то получилось, а вот как дальше? он сохранился под именем допустим 666, след 777, но парсер заточен то под конкретное имя...
     
  14. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
  15. samara

    samara Новичок

    С нами с:
    5 май 2015
    Сообщения:
    46
    Симпатии:
    0
    Друг, Спасибо тебе огромное, Человек ты с Большой буквы!!!!! Все получилось! =)
    Нужно то всего лишь было.....