{"id":28163,"date":"2018-03-17T20:49:17","date_gmt":"2018-03-17T17:49:17","guid":{"rendered":"http:\/\/kamil-abzalov.com\/tutorials\/create-php-mvc-application-upload-csv-file\/"},"modified":"2020-04-11T00:21:26","modified_gmt":"2020-04-10T21:21:26","slug":"create-php-mvc-application-upload-csv-file","status":"publish","type":"post","link":"https:\/\/kamil-abzalov.com\/en\/tutorials\/phpmysql\/create-php-mvc-application-upload-csv-file\/","title":{"rendered":"Create php MVC application. Upload CSV file"},"content":{"rendered":"<p>[et_pb_section fb_built=&#8221;1&#8243; fullwidth=&#8221;on&#8221; _builder_version=&#8221;3.22&#8243;][et_pb_fullwidth_header title=&#8221;Create php MVC application. Upload CSV file &#8221; _builder_version=&#8221;3.16&#8243; button_one_text_size__hover_enabled=&#8221;off&#8221; button_two_text_size__hover_enabled=&#8221;off&#8221; button_one_text_color__hover_enabled=&#8221;off&#8221; button_two_text_color__hover_enabled=&#8221;off&#8221; button_one_border_width__hover_enabled=&#8221;off&#8221; button_two_border_width__hover_enabled=&#8221;off&#8221; button_one_border_color__hover_enabled=&#8221;off&#8221; button_two_border_color__hover_enabled=&#8221;off&#8221; button_one_border_radius__hover_enabled=&#8221;off&#8221; button_two_border_radius__hover_enabled=&#8221;off&#8221; button_one_letter_spacing__hover_enabled=&#8221;off&#8221; button_two_letter_spacing__hover_enabled=&#8221;off&#8221; button_one_bg_color__hover_enabled=&#8221;off&#8221; button_two_bg_color__hover_enabled=&#8221;off&#8221;][\/et_pb_fullwidth_header][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; admin_label=&#8221;section&#8221; _builder_version=&#8221;3.22&#8243;][et_pb_row admin_label=&#8221;row&#8221; _builder_version=&#8221;3.25&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221; custom_padding=&#8221;0px|||&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;3.25&#8243; custom_padding=&#8221;|||&#8221; custom_padding__hover=&#8221;|||&#8221;][et_pb_dcsbcm_divi_breadcrumbs_module homebreadcrumbtext=&#8221;Home&#8221; hide_currentbreadcrumb=&#8221;off&#8221; _builder_version=&#8221;4.4.2&#8243; custom_padding=&#8221;0px|||&#8221; hover_enabled=&#8221;0&#8243; fontsbreadcrumbs_font_size_tablet=&#8221;51&#8243; fontsbreadcrumbs_line_height_tablet=&#8221;2&#8243; fontsseperator_font_size_tablet=&#8221;51&#8243; fontsseperator_line_height_tablet=&#8221;2&#8243; fontsbreadcrumblinks_font_size_tablet=&#8221;51&#8243; fontsbreadcrumblinks_line_height_tablet=&#8221;2&#8243;][\/et_pb_dcsbcm_divi_breadcrumbs_module][et_pb_text _builder_version=&#8221;3.27.4&#8243; border_color_all=&#8221;#ffffff&#8221; use_border_color=&#8221;off&#8221; border_color=&#8221;#ffffff&#8221; border_style=&#8221;solid&#8221;]One of subscribers asked me to shoe CSV file uploading and handling it in our app. In this lesson we&#8217;ll upload CSV file, read data from it and record data from file to application database<br \/>\n[\/et_pb_text][et_pb_video src=&#8221;https:\/\/www.youtube.com\/watch?v=mJmRg6cI57U&#8221; _builder_version=&#8221;3.0.106&#8243;][\/et_pb_video][et_pb_text _builder_version=&#8221;3.27.4&#8243; border_color_all=&#8221;#ffffff&#8221; use_border_color=&#8221;off&#8221; border_color=&#8221;#ffffff&#8221; border_style=&#8221;solid&#8221;]While uploading any type of file to the server we must notice several key concepts:<\/p>\n<ul>\n<li>You need attribute enctype with multipart\/form-data value to html form<\/li>\n<li>Input with type &#8220;file&#8221; mus be in html form. Other types are not prohibited<\/li>\n<li>While sending file to the server you can access to it from super global array &#8211; $_FILES. But html form still must have method post attribute.<\/li>\n<li>While uploading file you must notice your server settings &#8211; file must be large, php script needs time to upload and handle it. That&#8217;s why you should check max execution time setting. Moreover, file uploading operation can fail, if its size more than server settings. That&#8217;s why you should check upload_max_filesize and post_max_size settings.<\/li>\n<li>File don&#8217;t upload to the desired folder at once. It uploads to the temporary directory. You must upload file from temporary directory to your server desired directory using move_uploaded_file function.<\/li>\n<\/ul>\n<p>[\/et_pb_text][et_pb_dmb_code_snippet title=&#8221;Code lesson (config.php)&#8221; code=&#8221;PD9waHAKCi8q0J7QsdGJ0LjQtSDQutC+0L3RgdGC0LDQvdGC0Ysg0L\/RgNC40LvQvtC20LXQvdC40Y8qLwoKc2Vzc2lvbl9zdGFydCgpOwpkZWZpbmUoIlJPT1QiLCAkX1NFUlZFUlsnRE9DVU1FTlRfUk9PVCddKTsKZGVmaW5lKCJDT05UUk9MTEVSX1BBVEgiLCBST09UIC4gIi9jb250cm9sbGVycy8iKTsKZGVmaW5lKCJNT0RFTF9QQVRIIiwgUk9PVCAuICIvbW9kZWxzLyIpOwpkZWZpbmUoIlZJRVdfUEFUSCIsIFJPT1QgLiAiL3ZpZXdzLyIpOwpkZWZpbmUoIlVQTE9BRF9GT0xERVIiLCBST09ULiAiL3VwbG9hZHMvIik7CgpyZXF1aXJlX29uY2UoJ2RiLnBocCcpOwpyZXF1aXJlX29uY2UoJ3JvdXRlLnBocCcpOwpyZXF1aXJlX29uY2UgTU9ERUxfUEFUSCAuICdNb2RlbC5waHAnOwpyZXF1aXJlX29uY2UgVklFV19QQVRIIC4gJ1ZpZXcucGhwJzsKcmVxdWlyZV9vbmNlIENPTlRST0xMRVJfUEFUSCAuICdDb250cm9sbGVyLnBocCc7CgpSb3V0aW5nOjpidWlsZFJvdXRlKCk7Cg==&#8221; admin_label=&#8221;\u041a\u043e\u0434 \u0443\u0440\u043e\u043a\u0430&#8221; style=&#8221;docco&#8221; linenums=&#8221;on&#8221; usetabwidth=&#8221;on&#8221; tabwidth=&#8221;4&#8243; _builder_version=&#8221;4.4.2&#8243; hover_enabled=&#8221;0&#8243;]PD9waHAKCi8q0J7QsdGJ0LjQtSDQutC+0L3RgdGC0LDQvdGC0Ysg0L\/RgNC40LvQvtC20LXQvdC40Y8qLwoKc2Vzc2lvbl9zdGFydCgpOwpkZWZpbmUoIlJPT1QiLCAkX1NFUlZFUlsnRE9DVU1FTlRfUk9PVCddKTsKZGVmaW5lKCJDT05UUk9MTEVSX1BBVEgiLCBST09UIC4gIi9jb250cm9sbGVycy8iKTsKZGVmaW5lKCJNT0RFTF9QQVRIIiwgUk9PVCAuICIvbW9kZWxzLyIpOwpkZWZpbmUoIlZJRVdfUEFUSCIsIFJPT1QgLiAiL3ZpZXdzLyIpOwpkZWZpbmUoIlVQTE9BRF9GT0xERVIiLCBST09ULiAiL3VwbG9hZHMvIik7CgpyZXF1aXJlX29uY2UoJ2RiLnBocCcpOwpyZXF1aXJlX29uY2UoJ3JvdXRlLnBocCcpOwpyZXF1aXJlX29uY2UgTU9ERUxfUEFUSCAuICdNb2RlbC5waHAnOwpyZXF1aXJlX29uY2UgVklFV19QQVRIIC4gJ1ZpZXcucGhwJzsKcmVxdWlyZV9vbmNlIENPTlRST0xMRVJfUEFUSCAuICdDb250cm9sbGVyLnBocCc7CgpSb3V0aW5nOjpidWlsZFJvdXRlKCk7Cg==[\/et_pb_dmb_code_snippet][et_pb_dmb_code_snippet title=&#8221;Code lesson (ProductsController.php)&#8221; code=&#8221;PD9waHAKCmNsYXNzIFByb2R1Y3RzQ29udHJvbGxlciBleHRlbmRzIENvbnRyb2xsZXIgewoKICAgIHByaXZhdGUgJHBhZ2VUcGwgPSAiL3ZpZXdzL3Byb2R1Y3RzLnRwbC5waHAiOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpIHsKICAgICAgICAkdGhpcy0+bW9kZWwgPSBuZXcgUHJvZHVjdHNNb2RlbCgpOwogICAgICAgICR0aGlzLT52aWV3ID0gbmV3IFZpZXcoKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gaW5kZXgoKSB7CiAgICAgICAgaWYoISRfU0VTU0lPTlsndXNlciddKSB7CiAgICAgICAgICAgIGhlYWRlcigiTG9jYXRpb246IC8iKTsKICAgICAgICB9CiAgICAgICAgJHRoaXMtPnBhZ2VEYXRhWydwcm9kdWN0cyddID0gJHRoaXMtPm1vZGVsLT5nZXRBbGxQcm9kdWN0cygpOwogICAgICAgICR0aGlzLT5wYWdlRGF0YVsndGl0bGUnXSA9ICLQotC+0LLQsNGA0YsiOwogICAgICAgICR0aGlzLT52aWV3LT5yZW5kZXIoJHRoaXMtPnBhZ2VUcGwsICR0aGlzLT5wYWdlRGF0YSk7CgogICAgICAgIGlmKCRfRklMRVMpIHsKICAgICAgICAgICAgaWYoJF9GSUxFU1snY3N2J11bJ3R5cGUnXSAhPSAndGV4dC9jc3YnIHx8ICRfRklMRVNbJ2NzdiddWyd0eXBlJ10gPT0gJycpIHsKICAgICAgICAgICAgICAgICR0aGlzLT5wYWdlRGF0YVsnZXJyb3JzJ10gPSAi0J7RiNC40LHQutCwISDQktC+0LfQvNC+0LbQvdC+INC00LDQvdC90YvQuSDRhNCw0LnQuyDQuNC80LXQtdGCINC90LXQutC+0YDRgNC10LrRgtC90YvQuSDRhNC+0YDQvNCw0YIiOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgaWYobW92ZV91cGxvYWRlZF9maWxlKCRfRklMRVNbJ2NzdiddWyd0bXBfbmFtZSddLFVQTE9BRF9GT0xERVIuJF9GSUxFU1snY3N2J11bJ25hbWUnXSkpIHsKICAgICAgICAgICAgICAgICAgICAkZmlsZSA9IGZvcGVuKFVQTE9BRF9GT0xERVIuJF9GSUxFU1snY3N2J11bJ25hbWUnXSwgInIiKTsKICAgICAgICAgICAgICAgICAgICAkcm93ID0gMTsKICAgICAgICAgICAgICAgICAgICB3aGlsZSgkZGF0YSA9IGZnZXRjc3YoJGZpbGUsIDIwMCwgIjsiKSkgewogICAgICAgICAgICAgICAgICAgICAgICBpZigkcm93ID09IDEpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRyb3crKzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPm1vZGVsLT5hZGRGcm9tQ1NWKCRkYXRhKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBmY2xvc2UoJGZpbGUpOwogICAgICAgICAgICAgICAgICAgICR0aGlzLT5tb2RlbC0+Z2V0QWxsUHJvZHVjdHMoKTsgICAgCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgfQoKfQoKID8+Cg==&#8221; admin_label=&#8221;\u041a\u043e\u0434 \u0443\u0440\u043e\u043a\u0430&#8221; style=&#8221;docco&#8221; linenums=&#8221;on&#8221; usetabwidth=&#8221;on&#8221; tabwidth=&#8221;4&#8243; _builder_version=&#8221;4.4.2&#8243; hover_enabled=&#8221;0&#8243;]PD9waHAKCmNsYXNzIFByb2R1Y3RzQ29udHJvbGxlciBleHRlbmRzIENvbnRyb2xsZXIgewoKICAgIHByaXZhdGUgJHBhZ2VUcGwgPSAiL3ZpZXdzL3Byb2R1Y3RzLnRwbC5waHAiOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpIHsKICAgICAgICAkdGhpcy0+bW9kZWwgPSBuZXcgUHJvZHVjdHNNb2RlbCgpOwogICAgICAgICR0aGlzLT52aWV3ID0gbmV3IFZpZXcoKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gaW5kZXgoKSB7CiAgICAgICAgaWYoISRfU0VTU0lPTlsndXNlciddKSB7CiAgICAgICAgICAgIGhlYWRlcigiTG9jYXRpb246IC8iKTsKICAgICAgICB9CiAgICAgICAgJHRoaXMtPnBhZ2VEYXRhWydwcm9kdWN0cyddID0gJHRoaXMtPm1vZGVsLT5nZXRBbGxQcm9kdWN0cygpOwogICAgICAgICR0aGlzLT5wYWdlRGF0YVsndGl0bGUnXSA9ICLQotC+0LLQsNGA0YsiOwogICAgICAgICR0aGlzLT52aWV3LT5yZW5kZXIoJHRoaXMtPnBhZ2VUcGwsICR0aGlzLT5wYWdlRGF0YSk7CgogICAgICAgIGlmKCRfRklMRVMpIHsKICAgICAgICAgICAgaWYoJF9GSUxFU1snY3N2J11bJ3R5cGUnXSAhPSAndGV4dC9jc3YnIHx8ICRfRklMRVNbJ2NzdiddWyd0eXBlJ10gPT0gJycpIHsKICAgICAgICAgICAgICAgICR0aGlzLT5wYWdlRGF0YVsnZXJyb3JzJ10gPSAi0J7RiNC40LHQutCwISDQktC+0LfQvNC+0LbQvdC+INC00LDQvdC90YvQuSDRhNCw0LnQuyDQuNC80LXQtdGCINC90LXQutC+0YDRgNC10LrRgtC90YvQuSDRhNC+0YDQvNCw0YIiOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgaWYobW92ZV91cGxvYWRlZF9maWxlKCRfRklMRVNbJ2NzdiddWyd0bXBfbmFtZSddLFVQTE9BRF9GT0xERVIuJF9GSUxFU1snY3N2J11bJ25hbWUnXSkpIHsKICAgICAgICAgICAgICAgICAgICAkZmlsZSA9IGZvcGVuKFVQTE9BRF9GT0xERVIuJF9GSUxFU1snY3N2J11bJ25hbWUnXSwgInIiKTsKICAgICAgICAgICAgICAgICAgICAkcm93ID0gMTsKICAgICAgICAgICAgICAgICAgICB3aGlsZSgkZGF0YSA9IGZnZXRjc3YoJGZpbGUsIDIwMCwgIjsiKSkgewogICAgICAgICAgICAgICAgICAgICAgICBpZigkcm93ID09IDEpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRyb3crKzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPm1vZGVsLT5hZGRGcm9tQ1NWKCRkYXRhKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBmY2xvc2UoJGZpbGUpOwogICAgICAgICAgICAgICAgICAgICR0aGlzLT5tb2RlbC0+Z2V0QWxsUHJvZHVjdHMoKTsgICAgCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgfQoKfQoKID8+Cg==[\/et_pb_dmb_code_snippet][et_pb_dmb_code_snippet title=&#8221;Code lesson (ProductsModel.php)&#8221; code=&#8221;PD9waHAKCmNsYXNzIFByb2R1Y3RzTW9kZWwgZXh0ZW5kcyBNb2RlbCB7CgogICAgcHVibGljIGZ1bmN0aW9uIGdldEFsbFByb2R1Y3RzKCkgewogICAgICAgICRyZXN1bHQgPSBhcnJheSgpOwogICAgICAgICRzcWwgPSAiU0VMRUNUICogRlJPTSBwcm9kdWN0cyI7CiAgICAgICAgJHN0bXQgPSAkdGhpcy0+ZGItPnByZXBhcmUoJHNxbCk7CiAgICAgICAgJHN0bXQtPmV4ZWN1dGUoKTsKICAgICAgICB3aGlsZSgkcm93ID0gJHN0bXQtPmZldGNoKFBETzo6RkVUQ0hfQVNTT0MpKSB7CiAgICAgICAgICAgICRyZXN1bHRbJHJvd1snaWQnXV0gPSAkcm93OwogICAgICAgIH0KICAgICAgICByZXR1cm4gJHJlc3VsdDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gYWRkRnJvbUNTVigkZGF0YSkgewogICAgICAgICRzcWwgPSAiSU5TRVJUIElOVE8gcHJvZHVjdHMobmFtZSwgcHJpY2UpIFZBTFVFUyg6bmFtZSwgOnByaWNlKSI7CgogICAgICAgICRzdG10ID0gJHRoaXMtPmRiLT5wcmVwYXJlKCRzcWwpOwogICAgICAgICRzdG10LT5iaW5kVmFsdWUoIjpuYW1lIiwgJGRhdGFbMF0sIFBETzo6UEFSQU1fU1RSKTsKICAgICAgICAkc3RtdC0+YmluZFZhbHVlKCI6cHJpY2UiLCAkZGF0YVsxXSwgUERPOjpQQVJBTV9JTlQpOwogICAgICAgICRzdG10LT5leGVjdXRlKCk7CgogICAgfQoKCn0KCiA\/Pgo=&#8221; admin_label=&#8221;\u041a\u043e\u0434 \u0443\u0440\u043e\u043a\u0430&#8221; style=&#8221;docco&#8221; linenums=&#8221;on&#8221; usetabwidth=&#8221;on&#8221; tabwidth=&#8221;4&#8243; _builder_version=&#8221;4.4.2&#8243; hover_enabled=&#8221;0&#8243;]PD9waHAKCmNsYXNzIFByb2R1Y3RzTW9kZWwgZXh0ZW5kcyBNb2RlbCB7CgogICAgcHVibGljIGZ1bmN0aW9uIGdldEFsbFByb2R1Y3RzKCkgewogICAgICAgICRyZXN1bHQgPSBhcnJheSgpOwogICAgICAgICRzcWwgPSAiU0VMRUNUICogRlJPTSBwcm9kdWN0cyI7CiAgICAgICAgJHN0bXQgPSAkdGhpcy0+ZGItPnByZXBhcmUoJHNxbCk7CiAgICAgICAgJHN0bXQtPmV4ZWN1dGUoKTsKICAgICAgICB3aGlsZSgkcm93ID0gJHN0bXQtPmZldGNoKFBETzo6RkVUQ0hfQVNTT0MpKSB7CiAgICAgICAgICAgICRyZXN1bHRbJHJvd1snaWQnXV0gPSAkcm93OwogICAgICAgIH0KICAgICAgICByZXR1cm4gJHJlc3VsdDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gYWRkRnJvbUNTVigkZGF0YSkgewogICAgICAgICRzcWwgPSAiSU5TRVJUIElOVE8gcHJvZHVjdHMobmFtZSwgcHJpY2UpIFZBTFVFUyg6bmFtZSwgOnByaWNlKSI7CgogICAgICAgICRzdG10ID0gJHRoaXMtPmRiLT5wcmVwYXJlKCRzcWwpOwogICAgICAgICRzdG10LT5iaW5kVmFsdWUoIjpuYW1lIiwgJGRhdGFbMF0sIFBETzo6UEFSQU1fU1RSKTsKICAgICAgICAkc3RtdC0+YmluZFZhbHVlKCI6cHJpY2UiLCAkZGF0YVsxXSwgUERPOjpQQVJBTV9JTlQpOwogICAgICAgICRzdG10LT5leGVjdXRlKCk7CgogICAgfQoKCn0KCiA\/Pgo=[\/et_pb_dmb_code_snippet][et_pb_dmb_code_snippet title=&#8221;Code lesson (products.tpl.php)&#8221; code=&#8221;PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9InJ1Ij4KPGhlYWQ+CgogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgogICAgPGJhc2UgaHJlZj0iaHR0cDovL2NhYmluZXQuY29kZXRvZ2V0aGVyLnJ1L2NhYmluZXQvcHJvZHVjdHMiPgogICAgPG1ldGEgaHR0cC1lcXVpdj0iWC1VQS1Db21wYXRpYmxlIiBjb250ZW50PSJJRT1lZGdlIj4KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSI+CiAgICA8dGl0bGU+PD9waHAgZWNobyAkcGFnZURhdGFbJ3RpdGxlJ107ID8+PC90aXRsZT4KCiAgICA8IS0tIEJvb3RzdHJhcCBDb3JlIENTUyAtLT4KICAgIDxsaW5rIGhyZWY9Ii9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiIHJlbD0ic3R5bGVzaGVldCI+CgogICAgPCEtLSBNZXRpc01lbnUgQ1NTIC0tPgogICAgPGxpbmsgaHJlZj0iL2Nzcy9hZG1pbi9tZXRpc01lbnUubWluLmNzcyIgcmVsPSJzdHlsZXNoZWV0Ij4KCiAgICA8IS0tIEN1c3RvbSBDU1MgLS0+CiAgICA8bGluayBocmVmPSIvY3NzL2FkbWluL3NiLWFkbWluLTIuY3NzIiByZWw9InN0eWxlc2hlZXQiPgoKICAgIDwhLS0gTW9ycmlzIENoYXJ0cyBDU1MgLS0+CiAgICA8bGluayBocmVmPSIvY3NzL2FkbWluL21vcnJpcy5jc3MiIHJlbD0ic3R5bGVzaGVldCI+CgogICAgPCEtLSBDdXN0b20gRm9udHMgLS0+CiAgICA8bGluayBocmVmPSIvY3NzL2ZvbnQtYXdlc29tZS5taW4uY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj4KCiAgICA8IS0tIEhUTUw1IFNoaW0gYW5kIFJlc3BvbmQuanMgSUU4IHN1cHBvcnQgb2YgSFRNTDUgZWxlbWVudHMgYW5kIG1lZGlhIHF1ZXJpZXMgLS0+CiAgICA8IS0tIFdBUk5JTkc6IFJlc3BvbmQuanMgZG9lc24ndCB3b3JrIGlmIHlvdSB2aWV3IHRoZSBwYWdlIHZpYSBmaWxlOi8vIC0tPgogICAgPCEtLVtpZiBsdCBJRSA5XT4KICAgICAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9vc3MubWF4Y2RuLmNvbS9saWJzL2h0bWw1c2hpdi8zLjcuMC9odG1sNXNoaXYuanMiPjwvc2NyaXB0PgogICAgICAgIDxzY3JpcHQgc3JjPSJodHRwczovL29zcy5tYXhjZG4uY29tL2xpYnMvcmVzcG9uZC5qcy8xLjQuMi9yZXNwb25kLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8IVtlbmRpZl0tLT4KCjwvaGVhZD4KCjxib2R5PgoKICAgIDxkaXYgaWQ9IndyYXBwZXIiPgoKICAgICAgICA8IS0tIE5hdmlnYXRpb24gLS0+CiAgICAgICAgPG5hdiBjbGFzcz0ibmF2YmFyIG5hdmJhci1kZWZhdWx0IG5hdmJhci1zdGF0aWMtdG9wIiByb2xlPSJuYXZpZ2F0aW9uIiBzdHlsZT0ibWFyZ2luLWJvdHRvbTogMCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdmJhci1oZWFkZXIiPgogICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJuYXZiYXItdG9nZ2xlIiBkYXRhLXRvZ2dsZT0iY29sbGFwc2UiIGRhdGEtdGFyZ2V0PSIubmF2YmFyLWNvbGxhcHNlIj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic3Itb25seSI+VG9nZ2xlIG5hdmlnYXRpb248L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Imljb24tYmFyIj48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Imljb24tYmFyIj48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Imljb24tYmFyIj48L3NwYW4+CiAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJuYXZiYXItYnJhbmQiIGhyZWY9ImluZGV4Lmh0bWwiPtCa0LDQsdC40L3QtdGCPC9hPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPCEtLSAvLm5hdmJhci1oZWFkZXIgLS0+CgogICAgICAgICAgICA8dWwgY2xhc3M9Im5hdiBuYXZiYXItdG9wLWxpbmtzIG5hdmJhci1yaWdodCI+CiAgICAgICAgICAgICAgICA8IS0tIC8uZHJvcGRvd24gLS0+CiAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImRyb3Bkb3duIj4KICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0iZHJvcGRvd24tdG9nZ2xlIiBkYXRhLXRvZ2dsZT0iZHJvcGRvd24iIGhyZWY9IiMiPgogICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEtdXNlciBmYS1mdyI+PC9pPiA8aSBjbGFzcz0iZmEgZmEtY2FyZXQtZG93biI+PC9pPgogICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImRyb3Bkb3duLW1lbnUgZHJvcGRvd24tdXNlciI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjIj48aSBjbGFzcz0iZmEgZmEtdXNlciBmYS1mdyI+PC9pPiDQn9GA0L7RhNC40LvRjDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJkaXZpZGVyIj48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iL2NhYmluZXQvbG9nb3V0Ij48aSBjbGFzcz0iZmEgZmEtc2lnbi1vdXQgZmEtZnciPjwvaT4g0JLRi9C50YLQuDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgIDwhLS0gLy5kcm9wZG93bi11c2VyIC0tPgogICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgIDwhLS0gLy5kcm9wZG93biAtLT4KICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgPCEtLSAvLm5hdmJhci10b3AtbGlua3MgLS0+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYXZiYXItZGVmYXVsdCBzaWRlYmFyIiByb2xlPSJuYXZpZ2F0aW9uIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNpZGViYXItbmF2IG5hdmJhci1jb2xsYXBzZSI+CiAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJuYXYiIGlkPSJzaWRlLW1lbnUiPgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iL2NhYmluZXQiPjxpIGNsYXNzPSJmYSBmYS1hcmVhLWNoYXJ0Ij48L2k+INCh0YLQsNGC0LjRgdGC0LjQutCwPC9hPgogICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvY2FiaW5ldC9wcm9kdWN0cyI+PGkgY2xhc3M9ImZhIGZhLWNhcnQtcGx1cyI+PC9pPiDQotC+0LLQsNGA0Ys8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii9jYWJpbmV0L3VzZXJzIj48aSBjbGFzcz0iZmEgZmEtdXNlci1vIj48L2k+INCf0L7Qu9GM0LfQvtCy0LDRgtC10LvQuDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8IS0tIC8uc2lkZWJhci1jb2xsYXBzZSAtLT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwhLS0gLy5uYXZiYXItc3RhdGljLXNpZGUgLS0+CiAgICAgICAgPC9uYXY+CgogICAgICAgIDxkaXYgaWQ9InBhZ2Utd3JhcHBlciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdyI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbGctMTIiPgogICAgICAgICAgICAgICAgICAgIDxoMSBjbGFzcz0icGFnZS1oZWFkZXIiPjw\/cGhwIGVjaG8gJHBhZ2VEYXRhWyd0aXRsZSddOyA\/PjwvaDE+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwhLS0gLy5jb2wtbGctMTIgLS0+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8IS0tIC8ucm93IC0tPgogICAgICAgICAgICA8IS0tIC8ucm93IC0tPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLWxnLTEyIj4KICAgICAgICAgICAgICAgICAgICA8IS0tIC8ucGFuZWwgLS0+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGFuZWwgcGFuZWwtZGVmYXVsdCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBhbmVsLWhlYWRpbmciPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9ImZhIGZhLWJhci1jaGFydC1vIGZhLWZ3Ij48L2k+INCi0L7QstCw0YDRiwogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KCgogICAgICAgICAgICAgICAgICAgICAgICA8IS0tIC8ucGFuZWwtaGVhZGluZyAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGFuZWwtYm9keSIgZGF0YS1uZy1hcHA9InByb2R1Y3RzIiBkYXRhLW5nLWNvbnRyb2xsZXI9InByb2R1Y3RzQ29udHJvbGxlciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1sZy0xMiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgZGF0YS1uZy12aWV3PjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWJsZS1yZXNwb25zaXZlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtYm9yZGVyZWQgdGFibGUtaG92ZXIgdGFibGUtc3RyaXBlZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+aWQg0YLQvtCy0LDRgNCwPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD7QndCw0LjQvNC10L3QvtCy0LDQvdC40LUg0YLQvtCy0LDRgNCwPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD7QptC10L3QsDwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGJvZHk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw\/cGhwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICgkcGFnZURhdGFbJ3Byb2R1Y3RzJ10gYXMgJGtleSA9PiAkdmFsdWUpIHsgPz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48P3BocCBlY2hvICR2YWx1ZVsnaWQnXTsgPz48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PGEgaHJlZj0iIzw\/cGhwIGVjaG8gJHZhbHVlWydpZCddOyA\/PiI+PD9waHAgZWNobyAkdmFsdWVbJ25hbWUnXTsgPz48L2E+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjw\/cGhwIGVjaG8gJHZhbHVlWydwcmljZSddOyA\/PjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw\/cGhwIH0gPz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gLy50YWJsZS1yZXNwb25zaXZlIC0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gLy5jb2wtbGctNCAobmVzdGVkKSAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIC8uY29sLWxnLTggKG5lc3RlZCkgLS0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gLy5yb3cgLS0+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8IS0tIC8ucGFuZWwtYm9keSAtLT4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8IS0tIC8ucGFuZWwgLS0+CiAgICAgICAgICAgICAgICAgICAgPCEtLSAvLnBhbmVsIC0tPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8IS0tIC8uY29sLWxnLTggLS0+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8IS0tIC8ucm93IC0tPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLWxnLTEyIj4KICAgICAgICAgICAgICAgICAgICA8aDI+0JfQsNCz0YDRg9C30LjRgtGMIENTViDRhNCw0LnQuyDRgSDRgtC+0LLQsNGA0LDQvNC4PC9oMj4KICAgICAgICAgICAgICAgICAgICA8Zm9ybSBjbGFzcz0iZm9ybS1ob3Jpem9udGFsIiBtZXRob2Q9InBvc3QiIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiPgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJleGFtcGxlSW5wdXRGaWxlIj7Ql9Cw0LPRgNGD0LfQuNGC0LUgQ1NWINGE0LDQudC7PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImZpbGUiIG5hbWU9ImNzdiI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImJ0biBidG4tZGVmYXVsdCI+0JfQsNCz0YDRg9C30LjRgtGMPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDwhLS0gLyNwYWdlLXdyYXBwZXIgLS0+CgogICAgPC9kaXY+CiAgICA8IS0tIC8jd3JhcHBlciAtLT4KCiAgICA8IS0tIGpRdWVyeSAtLT4KICAgIDxzY3JpcHQgc3JjPSIvanMvanF1ZXJ5LmpzIj48L3NjcmlwdD4KCiAgICA8IS0tIEFuZ3VsYXIgLS0+CiAgICA8c2NyaXB0IHNyYz0iL2pzL2FuZ3VsYXIubWluLmpzIj48L3NjcmlwdD4KCiAgICA8IS0tIEFuZ3VsYXIgUm91dGUgLS0+CiAgICA8c2NyaXB0IHNyYz0iL2pzL2FuZ3VsYXItcm91dGUuanMiPjwvc2NyaXB0PgoKICAgIDwhLS0gQm9vdHN0cmFwIENvcmUgSmF2YVNjcmlwdCAtLT4KICAgIDxzY3JpcHQgc3JjPSIvanMvYm9vdHN0cmFwLm1pbi5qcyI+PC9zY3JpcHQ+CgogICAgPCEtLSBNZXRpcyBNZW51IFBsdWdpbiBKYXZhU2NyaXB0IC0tPgogICAgPHNjcmlwdCBzcmM9Ii9qcy9hZG1pbi9tZXRpc01lbnUuanMiPjwvc2NyaXB0PgoKICAgIDwhLS0gQ3VzdG9tIFRoZW1lIEphdmFTY3JpcHQgLS0+CiAgICA8c2NyaXB0IHNyYz0iL2pzL2FkbWluL3NiLWFkbWluLTIuanMiPjwvc2NyaXB0PgoKICAgIDxzY3JpcHQgc3JjPSIvanMvYWRtaW4vYXBwLmpzIj48L3NjcmlwdD4KCjwvYm9keT4KCjwvaHRtbD4K&#8221; admin_label=&#8221;\u041a\u043e\u0434 \u0443\u0440\u043e\u043a\u0430&#8221; style=&#8221;docco&#8221; linenums=&#8221;on&#8221; usetabwidth=&#8221;on&#8221; tabwidth=&#8221;4&#8243; _builder_version=&#8221;4.4.2&#8243; hover_enabled=&#8221;0&#8243;]PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9InJ1Ij4KPGhlYWQ+CgogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgogICAgPGJhc2UgaHJlZj0iaHR0cDovL2NhYmluZXQuY29kZXRvZ2V0aGVyLnJ1L2NhYmluZXQvcHJvZHVjdHMiPgogICAgPG1ldGEgaHR0cC1lcXVpdj0iWC1VQS1Db21wYXRpYmxlIiBjb250ZW50PSJJRT1lZGdlIj4KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSI+CiAgICA8dGl0bGU+PD9waHAgZWNobyAkcGFnZURhdGFbJ3RpdGxlJ107ID8+PC90aXRsZT4KCiAgICA8IS0tIEJvb3RzdHJhcCBDb3JlIENTUyAtLT4KICAgIDxsaW5rIGhyZWY9Ii9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiIHJlbD0ic3R5bGVzaGVldCI+CgogICAgPCEtLSBNZXRpc01lbnUgQ1NTIC0tPgogICAgPGxpbmsgaHJlZj0iL2Nzcy9hZG1pbi9tZXRpc01lbnUubWluLmNzcyIgcmVsPSJzdHlsZXNoZWV0Ij4KCiAgICA8IS0tIEN1c3RvbSBDU1MgLS0+CiAgICA8bGluayBocmVmPSIvY3NzL2FkbWluL3NiLWFkbWluLTIuY3NzIiByZWw9InN0eWxlc2hlZXQiPgoKICAgIDwhLS0gTW9ycmlzIENoYXJ0cyBDU1MgLS0+CiAgICA8bGluayBocmVmPSIvY3NzL2FkbWluL21vcnJpcy5jc3MiIHJlbD0ic3R5bGVzaGVldCI+CgogICAgPCEtLSBDdXN0b20gRm9udHMgLS0+CiAgICA8bGluayBocmVmPSIvY3NzL2ZvbnQtYXdlc29tZS5taW4uY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj4KCiAgICA8IS0tIEhUTUw1IFNoaW0gYW5kIFJlc3BvbmQuanMgSUU4IHN1cHBvcnQgb2YgSFRNTDUgZWxlbWVudHMgYW5kIG1lZGlhIHF1ZXJpZXMgLS0+CiAgICA8IS0tIFdBUk5JTkc6IFJlc3BvbmQuanMgZG9lc24ndCB3b3JrIGlmIHlvdSB2aWV3IHRoZSBwYWdlIHZpYSBmaWxlOi8vIC0tPgogICAgPCEtLVtpZiBsdCBJRSA5XT4KICAgICAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9vc3MubWF4Y2RuLmNvbS9saWJzL2h0bWw1c2hpdi8zLjcuMC9odG1sNXNoaXYuanMiPjwvc2NyaXB0PgogICAgICAgIDxzY3JpcHQgc3JjPSJodHRwczovL29zcy5tYXhjZG4uY29tL2xpYnMvcmVzcG9uZC5qcy8xLjQuMi9yZXNwb25kLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8IVtlbmRpZl0tLT4KCjwvaGVhZD4KCjxib2R5PgoKICAgIDxkaXYgaWQ9IndyYXBwZXIiPgoKICAgICAgICA8IS0tIE5hdmlnYXRpb24gLS0+CiAgICAgICAgPG5hdiBjbGFzcz0ibmF2YmFyIG5hdmJhci1kZWZhdWx0IG5hdmJhci1zdGF0aWMtdG9wIiByb2xlPSJuYXZpZ2F0aW9uIiBzdHlsZT0ibWFyZ2luLWJvdHRvbTogMCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdmJhci1oZWFkZXIiPgogICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJuYXZiYXItdG9nZ2xlIiBkYXRhLXRvZ2dsZT0iY29sbGFwc2UiIGRhdGEtdGFyZ2V0PSIubmF2YmFyLWNvbGxhcHNlIj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic3Itb25seSI+VG9nZ2xlIG5hdmlnYXRpb248L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Imljb24tYmFyIj48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Imljb24tYmFyIj48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Imljb24tYmFyIj48L3NwYW4+CiAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJuYXZiYXItYnJhbmQiIGhyZWY9ImluZGV4Lmh0bWwiPtCa0LDQsdC40L3QtdGCPC9hPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPCEtLSAvLm5hdmJhci1oZWFkZXIgLS0+CgogICAgICAgICAgICA8dWwgY2xhc3M9Im5hdiBuYXZiYXItdG9wLWxpbmtzIG5hdmJhci1yaWdodCI+CiAgICAgICAgICAgICAgICA8IS0tIC8uZHJvcGRvd24gLS0+CiAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImRyb3Bkb3duIj4KICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0iZHJvcGRvd24tdG9nZ2xlIiBkYXRhLXRvZ2dsZT0iZHJvcGRvd24iIGhyZWY9IiMiPgogICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEtdXNlciBmYS1mdyI+PC9pPiA8aSBjbGFzcz0iZmEgZmEtY2FyZXQtZG93biI+PC9pPgogICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImRyb3Bkb3duLW1lbnUgZHJvcGRvd24tdXNlciI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjIj48aSBjbGFzcz0iZmEgZmEtdXNlciBmYS1mdyI+PC9pPiDQn9GA0L7RhNC40LvRjDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJkaXZpZGVyIj48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iL2NhYmluZXQvbG9nb3V0Ij48aSBjbGFzcz0iZmEgZmEtc2lnbi1vdXQgZmEtZnciPjwvaT4g0JLRi9C50YLQuDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgIDwhLS0gLy5kcm9wZG93bi11c2VyIC0tPgogICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgIDwhLS0gLy5kcm9wZG93biAtLT4KICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgPCEtLSAvLm5hdmJhci10b3AtbGlua3MgLS0+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYXZiYXItZGVmYXVsdCBzaWRlYmFyIiByb2xlPSJuYXZpZ2F0aW9uIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNpZGViYXItbmF2IG5hdmJhci1jb2xsYXBzZSI+CiAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJuYXYiIGlkPSJzaWRlLW1lbnUiPgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iL2NhYmluZXQiPjxpIGNsYXNzPSJmYSBmYS1hcmVhLWNoYXJ0Ij48L2k+INCh0YLQsNGC0LjRgdGC0LjQutCwPC9hPgogICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvY2FiaW5ldC9wcm9kdWN0cyI+PGkgY2xhc3M9ImZhIGZhLWNhcnQtcGx1cyI+PC9pPiDQotC+0LLQsNGA0Ys8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii9jYWJpbmV0L3VzZXJzIj48aSBjbGFzcz0iZmEgZmEtdXNlci1vIj48L2k+INCf0L7Qu9GM0LfQvtCy0LDRgtC10LvQuDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8IS0tIC8uc2lkZWJhci1jb2xsYXBzZSAtLT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwhLS0gLy5uYXZiYXItc3RhdGljLXNpZGUgLS0+CiAgICAgICAgPC9uYXY+CgogICAgICAgIDxkaXYgaWQ9InBhZ2Utd3JhcHBlciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdyI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbGctMTIiPgogICAgICAgICAgICAgICAgICAgIDxoMSBjbGFzcz0icGFnZS1oZWFkZXIiPjw\/cGhwIGVjaG8gJHBhZ2VEYXRhWyd0aXRsZSddOyA\/PjwvaDE+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwhLS0gLy5jb2wtbGctMTIgLS0+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8IS0tIC8ucm93IC0tPgogICAgICAgICAgICA8IS0tIC8ucm93IC0tPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLWxnLTEyIj4KICAgICAgICAgICAgICAgICAgICA8IS0tIC8ucGFuZWwgLS0+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGFuZWwgcGFuZWwtZGVmYXVsdCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBhbmVsLWhlYWRpbmciPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9ImZhIGZhLWJhci1jaGFydC1vIGZhLWZ3Ij48L2k+INCi0L7QstCw0YDRiwogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KCgogICAgICAgICAgICAgICAgICAgICAgICA8IS0tIC8ucGFuZWwtaGVhZGluZyAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGFuZWwtYm9keSIgZGF0YS1uZy1hcHA9InByb2R1Y3RzIiBkYXRhLW5nLWNvbnRyb2xsZXI9InByb2R1Y3RzQ29udHJvbGxlciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1sZy0xMiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgZGF0YS1uZy12aWV3PjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0YWJsZS1yZXNwb25zaXZlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUgdGFibGUtYm9yZGVyZWQgdGFibGUtaG92ZXIgdGFibGUtc3RyaXBlZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+aWQg0YLQvtCy0LDRgNCwPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD7QndCw0LjQvNC10L3QvtCy0LDQvdC40LUg0YLQvtCy0LDRgNCwPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD7QptC10L3QsDwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGJvZHk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw\/cGhwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICgkcGFnZURhdGFbJ3Byb2R1Y3RzJ10gYXMgJGtleSA9PiAkdmFsdWUpIHsgPz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48P3BocCBlY2hvICR2YWx1ZVsnaWQnXTsgPz48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PGEgaHJlZj0iIzw\/cGhwIGVjaG8gJHZhbHVlWydpZCddOyA\/PiI+PD9waHAgZWNobyAkdmFsdWVbJ25hbWUnXTsgPz48L2E+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjw\/cGhwIGVjaG8gJHZhbHVlWydwcmljZSddOyA\/PjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw\/cGhwIH0gPz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gLy50YWJsZS1yZXNwb25zaXZlIC0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gLy5jb2wtbGctNCAobmVzdGVkKSAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIC8uY29sLWxnLTggKG5lc3RlZCkgLS0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gLy5yb3cgLS0+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8IS0tIC8ucGFuZWwtYm9keSAtLT4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8IS0tIC8ucGFuZWwgLS0+CiAgICAgICAgICAgICAgICAgICAgPCEtLSAvLnBhbmVsIC0tPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8IS0tIC8uY29sLWxnLTggLS0+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8IS0tIC8ucm93IC0tPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLWxnLTEyIj4KICAgICAgICAgICAgICAgICAgICA8aDI+0JfQsNCz0YDRg9C30LjRgtGMIENTViDRhNCw0LnQuyDRgSDRgtC+0LLQsNGA0LDQvNC4PC9oMj4KICAgICAgICAgICAgICAgICAgICA8Zm9ybSBjbGFzcz0iZm9ybS1ob3Jpem9udGFsIiBtZXRob2Q9InBvc3QiIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiPgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJleGFtcGxlSW5wdXRGaWxlIj7Ql9Cw0LPRgNGD0LfQuNGC0LUgQ1NWINGE0LDQudC7PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImZpbGUiIG5hbWU9ImNzdiI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImJ0biBidG4tZGVmYXVsdCI+0JfQsNCz0YDRg9C30LjRgtGMPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDwhLS0gLyNwYWdlLXdyYXBwZXIgLS0+CgogICAgPC9kaXY+CiAgICA8IS0tIC8jd3JhcHBlciAtLT4KCiAgICA8IS0tIGpRdWVyeSAtLT4KICAgIDxzY3JpcHQgc3JjPSIvanMvanF1ZXJ5LmpzIj48L3NjcmlwdD4KCiAgICA8IS0tIEFuZ3VsYXIgLS0+CiAgICA8c2NyaXB0IHNyYz0iL2pzL2FuZ3VsYXIubWluLmpzIj48L3NjcmlwdD4KCiAgICA8IS0tIEFuZ3VsYXIgUm91dGUgLS0+CiAgICA8c2NyaXB0IHNyYz0iL2pzL2FuZ3VsYXItcm91dGUuanMiPjwvc2NyaXB0PgoKICAgIDwhLS0gQm9vdHN0cmFwIENvcmUgSmF2YVNjcmlwdCAtLT4KICAgIDxzY3JpcHQgc3JjPSIvanMvYm9vdHN0cmFwLm1pbi5qcyI+PC9zY3JpcHQ+CgogICAgPCEtLSBNZXRpcyBNZW51IFBsdWdpbiBKYXZhU2NyaXB0IC0tPgogICAgPHNjcmlwdCBzcmM9Ii9qcy9hZG1pbi9tZXRpc01lbnUuanMiPjwvc2NyaXB0PgoKICAgIDwhLS0gQ3VzdG9tIFRoZW1lIEphdmFTY3JpcHQgLS0+CiAgICA8c2NyaXB0IHNyYz0iL2pzL2FkbWluL3NiLWFkbWluLTIuanMiPjwvc2NyaXB0PgoKICAgIDxzY3JpcHQgc3JjPSIvanMvYWRtaW4vYXBwLmpzIj48L3NjcmlwdD4KCjwvYm9keT4KCjwvaHRtbD4K[\/et_pb_dmb_code_snippet][et_pb_comments _builder_version=&#8221;4.4.2&#8243; custom_margin=&#8221;30px||||false|false&#8221; hover_enabled=&#8221;0&#8243;][\/et_pb_comments][\/et_pb_column][\/et_pb_row][\/et_pb_section]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>One of subscribers asked me to shoe CSV file uploading and handling it in our app. In this lesson we&#8217;ll upload CSV file, read data from it and record data from file to application database While uploading any type of file to the server we must notice several key concepts: You need attribute enctype with [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"on","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"categories":[274,219],"tags":[],"class_list":["post-28163","post","type-post","status-publish","format-standard","hentry","category-phpmysql","category-tutorials"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Create php MVC application. Upload CSV file - Kamil Abzalov&#039;s site<\/title>\n<meta name=\"description\" content=\"In this tutorial we&#039;ll make CSV file upload to the server, read data from it and insert data to application database\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kamil-abzalov.com\/videouroki\/phpmysql\/create-php-mvc-app-upload-csv-file\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Create php MVC application. Upload CSV file - Kamil Abzalov&#039;s site\" \/>\n<meta property=\"og:description\" content=\"In this tutorial we&#039;ll make CSV file upload to the server, read data from it and insert data to application database\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kamil-abzalov.com\/videouroki\/phpmysql\/create-php-mvc-app-upload-csv-file\/\" \/>\n<meta property=\"og:site_name\" content=\"\u0441\u0430\u0439\u0442 \u041a\u0430\u043c\u0438\u043b\u044f \u0410\u0431\u0437\u0430\u043b\u043e\u0432\u0430\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/kamabzalov\" \/>\n<meta property=\"article:published_time\" content=\"2018-03-17T17:49:17+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-04-10T21:21:26+00:00\" \/>\n<meta name=\"author\" content=\"Kamil&#039; Abzalov\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"Create php MVC application. Upload CSV file\" \/>\n<meta name=\"twitter:description\" content=\"In this tutorial we&#039;ll make CSV file upload to the server, read data from it and insert data to application database\" \/>\n<meta name=\"twitter:creator\" content=\"@kamabzalov\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Kamil&#039; Abzalov\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"15 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/kamil-abzalov.com\\\/videouroki\\\/phpmysql\\\/create-php-mvc-app-upload-csv-file\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/kamil-abzalov.com\\\/videouroki\\\/phpmysql\\\/create-php-mvc-app-upload-csv-file\\\/\"},\"author\":{\"name\":\"Kamil' Abzalov\",\"@id\":\"https:\\\/\\\/kamil-abzalov.com\\\/#\\\/schema\\\/person\\\/9c53360f21b83306ba40c2231573c600\"},\"headline\":\"Create php MVC application. Upload CSV file\",\"datePublished\":\"2018-03-17T17:49:17+00:00\",\"dateModified\":\"2020-04-10T21:21:26+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/kamil-abzalov.com\\\/videouroki\\\/phpmysql\\\/create-php-mvc-app-upload-csv-file\\\/\"},\"wordCount\":3057,\"commentCount\":0,\"articleSection\":[\"PHP+MySQL\",\"Tutorials\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/kamil-abzalov.com\\\/videouroki\\\/phpmysql\\\/create-php-mvc-app-upload-csv-file\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/kamil-abzalov.com\\\/videouroki\\\/phpmysql\\\/create-php-mvc-app-upload-csv-file\\\/\",\"url\":\"https:\\\/\\\/kamil-abzalov.com\\\/videouroki\\\/phpmysql\\\/create-php-mvc-app-upload-csv-file\\\/\",\"name\":\"Create php MVC application. Upload CSV file - Kamil Abzalov's site\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/kamil-abzalov.com\\\/#website\"},\"datePublished\":\"2018-03-17T17:49:17+00:00\",\"dateModified\":\"2020-04-10T21:21:26+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/kamil-abzalov.com\\\/#\\\/schema\\\/person\\\/9c53360f21b83306ba40c2231573c600\"},\"description\":\"In this tutorial we'll make CSV file upload to the server, read data from it and insert data to application database\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/kamil-abzalov.com\\\/videouroki\\\/phpmysql\\\/create-php-mvc-app-upload-csv-file\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/kamil-abzalov.com\\\/videouroki\\\/phpmysql\\\/create-php-mvc-app-upload-csv-file\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/kamil-abzalov.com\\\/videouroki\\\/phpmysql\\\/create-php-mvc-app-upload-csv-file\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u0413\u043b\u0430\u0432\u043d\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\",\"item\":\"https:\\\/\\\/kamil-abzalov.com\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Create php MVC application. Upload CSV file\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/kamil-abzalov.com\\\/#website\",\"url\":\"https:\\\/\\\/kamil-abzalov.com\\\/\",\"name\":\"\u0441\u0430\u0439\u0442 \u041a\u0430\u043c\u0438\u043b\u044f \u0410\u0431\u0437\u0430\u043b\u043e\u0432\u0430\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/kamil-abzalov.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/kamil-abzalov.com\\\/#\\\/schema\\\/person\\\/9c53360f21b83306ba40c2231573c600\",\"name\":\"Kamil' Abzalov\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3ad2daebcb3a4d03f8573b49054a003cd26a151ecc58ccfccc75b823131d1ead?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3ad2daebcb3a4d03f8573b49054a003cd26a151ecc58ccfccc75b823131d1ead?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3ad2daebcb3a4d03f8573b49054a003cd26a151ecc58ccfccc75b823131d1ead?s=96&d=mm&r=g\",\"caption\":\"Kamil' Abzalov\"},\"sameAs\":[\"https:\\\/\\\/kamil-abzalov.com\\\/\",\"https:\\\/\\\/www.facebook.com\\\/kamabzalov\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/kamabzalov\",\"https:\\\/\\\/x.com\\\/kamabzalov\",\"https:\\\/\\\/www.youtube.com\\\/user\\\/kamabzalov\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Create php MVC application. Upload CSV file - Kamil Abzalov's site","description":"In this tutorial we'll make CSV file upload to the server, read data from it and insert data to application database","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kamil-abzalov.com\/videouroki\/phpmysql\/create-php-mvc-app-upload-csv-file\/","og_locale":"en_US","og_type":"article","og_title":"Create php MVC application. Upload CSV file - Kamil Abzalov's site","og_description":"In this tutorial we'll make CSV file upload to the server, read data from it and insert data to application database","og_url":"https:\/\/kamil-abzalov.com\/videouroki\/phpmysql\/create-php-mvc-app-upload-csv-file\/","og_site_name":"\u0441\u0430\u0439\u0442 \u041a\u0430\u043c\u0438\u043b\u044f \u0410\u0431\u0437\u0430\u043b\u043e\u0432\u0430","article_author":"https:\/\/www.facebook.com\/kamabzalov","article_published_time":"2018-03-17T17:49:17+00:00","article_modified_time":"2020-04-10T21:21:26+00:00","author":"Kamil' Abzalov","twitter_card":"summary_large_image","twitter_title":"Create php MVC application. Upload CSV file","twitter_description":"In this tutorial we'll make CSV file upload to the server, read data from it and insert data to application database","twitter_creator":"@kamabzalov","twitter_misc":{"Written by":"Kamil' Abzalov","Est. reading time":"15 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kamil-abzalov.com\/videouroki\/phpmysql\/create-php-mvc-app-upload-csv-file\/#article","isPartOf":{"@id":"https:\/\/kamil-abzalov.com\/videouroki\/phpmysql\/create-php-mvc-app-upload-csv-file\/"},"author":{"name":"Kamil' Abzalov","@id":"https:\/\/kamil-abzalov.com\/#\/schema\/person\/9c53360f21b83306ba40c2231573c600"},"headline":"Create php MVC application. Upload CSV file","datePublished":"2018-03-17T17:49:17+00:00","dateModified":"2020-04-10T21:21:26+00:00","mainEntityOfPage":{"@id":"https:\/\/kamil-abzalov.com\/videouroki\/phpmysql\/create-php-mvc-app-upload-csv-file\/"},"wordCount":3057,"commentCount":0,"articleSection":["PHP+MySQL","Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kamil-abzalov.com\/videouroki\/phpmysql\/create-php-mvc-app-upload-csv-file\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kamil-abzalov.com\/videouroki\/phpmysql\/create-php-mvc-app-upload-csv-file\/","url":"https:\/\/kamil-abzalov.com\/videouroki\/phpmysql\/create-php-mvc-app-upload-csv-file\/","name":"Create php MVC application. Upload CSV file - Kamil Abzalov's site","isPartOf":{"@id":"https:\/\/kamil-abzalov.com\/#website"},"datePublished":"2018-03-17T17:49:17+00:00","dateModified":"2020-04-10T21:21:26+00:00","author":{"@id":"https:\/\/kamil-abzalov.com\/#\/schema\/person\/9c53360f21b83306ba40c2231573c600"},"description":"In this tutorial we'll make CSV file upload to the server, read data from it and insert data to application database","breadcrumb":{"@id":"https:\/\/kamil-abzalov.com\/videouroki\/phpmysql\/create-php-mvc-app-upload-csv-file\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kamil-abzalov.com\/videouroki\/phpmysql\/create-php-mvc-app-upload-csv-file\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/kamil-abzalov.com\/videouroki\/phpmysql\/create-php-mvc-app-upload-csv-file\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u0413\u043b\u0430\u0432\u043d\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430","item":"https:\/\/kamil-abzalov.com\/en\/"},{"@type":"ListItem","position":2,"name":"Create php MVC application. Upload CSV file"}]},{"@type":"WebSite","@id":"https:\/\/kamil-abzalov.com\/#website","url":"https:\/\/kamil-abzalov.com\/","name":"\u0441\u0430\u0439\u0442 \u041a\u0430\u043c\u0438\u043b\u044f \u0410\u0431\u0437\u0430\u043b\u043e\u0432\u0430","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kamil-abzalov.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/kamil-abzalov.com\/#\/schema\/person\/9c53360f21b83306ba40c2231573c600","name":"Kamil' Abzalov","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/3ad2daebcb3a4d03f8573b49054a003cd26a151ecc58ccfccc75b823131d1ead?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/3ad2daebcb3a4d03f8573b49054a003cd26a151ecc58ccfccc75b823131d1ead?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/3ad2daebcb3a4d03f8573b49054a003cd26a151ecc58ccfccc75b823131d1ead?s=96&d=mm&r=g","caption":"Kamil' Abzalov"},"sameAs":["https:\/\/kamil-abzalov.com\/","https:\/\/www.facebook.com\/kamabzalov","https:\/\/www.linkedin.com\/in\/kamabzalov","https:\/\/x.com\/kamabzalov","https:\/\/www.youtube.com\/user\/kamabzalov"]}]}},"_links":{"self":[{"href":"https:\/\/kamil-abzalov.com\/en\/wp-json\/wp\/v2\/posts\/28163","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kamil-abzalov.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kamil-abzalov.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kamil-abzalov.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kamil-abzalov.com\/en\/wp-json\/wp\/v2\/comments?post=28163"}],"version-history":[{"count":7,"href":"https:\/\/kamil-abzalov.com\/en\/wp-json\/wp\/v2\/posts\/28163\/revisions"}],"predecessor-version":[{"id":31982,"href":"https:\/\/kamil-abzalov.com\/en\/wp-json\/wp\/v2\/posts\/28163\/revisions\/31982"}],"wp:attachment":[{"href":"https:\/\/kamil-abzalov.com\/en\/wp-json\/wp\/v2\/media?parent=28163"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kamil-abzalov.com\/en\/wp-json\/wp\/v2\/categories?post=28163"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kamil-abzalov.com\/en\/wp-json\/wp\/v2\/tags?post=28163"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}