Картинка тыкабельна :)
Самая дешевая парфюмерия с доставкой!
CSV выгрузка из PHP, которую понимает Excel
Надо сказать, что Excel любит формат не csv, а tsv. Иными словами, в данном формате разделителем является символ табуляции.
Помимо этого файл должен быть в кодировке UTF-16LE и содержать битовый маркер (BOM) — «\xFF\xFE»
Итого, вот такой код у вас должен получиться, чтобы cvs, создаваемый вами успешно открылся в экселе:
echo "\xFF\xFE"; // $output - переменная, в которой записан весь csv, UTF-8 - исходная кодировка, в которой находится $output echo mb_convert_encoding($output, "UTF-16LE", "UTF-8");
Byte Order Mark (BOM) в PHP — как определить?
А очень просто!
Для этого вам понадобится вот такой вот код:
// читаем содержимое файла $file = file_get_contents($path); $sets = array( "\xFE\xFF" => "UTF-16BE", "\xFF\xFE" => "UTF-16LE", "\xFE" => "UTF-16", "\xFF" => "UTF-16", "\xEF\xBB\xBF" => "UTF-8", "\x2B\x2F\x76\x38\x2D" => "UTF-7", "\x2B\x2F\x76\x38" => "UTF-7", "\x2B\x2F\x76\x38" => "UTF-7", "\x2B\x2F\x76\x2B" => "UTF-7", "\x2B\x2F\x76\x2F" => "UTF-7", "\xF7\x64\x4C" => "UTF-1", "\x0E\xFE\xFF" => "SCSU", "\xFB\xEE\x28" => "BOCU-1", "\x00\x00\xFE\xFF" => "UTF-32BE", "\xFF\xFE\x00\x00" => "UTF-32LE", "\xDD\x73\x66\x73" => "UTF-EBCDIC", "\x84\x31\x95\x33" => "GB-18030", ); // предполагаем, что изначально файл у нас не в utf $is_utf = false; $source_charset = ""; foreach ($sets as $bom => $charset) { // определяем битовый маркер if (mb_substr($file, 0, mb_strlen($bom)) == $bom) { // отрезаем битовый маркер и запоминаем кодировку $file = mb_substr($file, mb_strlen($bom)); $source_charset = $charset; $is_utf = true; break; } } if (!$is_utf){ // строка не в юникод кодировке, поэтому делаем соответсвующие, нужные вам преобразования }else{ // строка в юникоде, конвертируем ее в utf-8 или же в любую другую удобную вам кодировку $file = iconv($source_charset, "UTF-8", $file); }
Таким образом вы сможете успешно определить кодировку присланного вам файла и распарсить его без лишних трудозатрат
Ни курсы, ни книги тут уже не помогут..
Пару дней назад я познакомился с мальчиком обновился сайт spbvoditel.ru. Ниже прикладываю скриншот сайта:
Читать далее Ни курсы, ни книги тут уже не помогут..
Куда складывать загружаемые пользователями файлы для обработки их редакцией сайта?
Другой заголовок:
Как загрузить файлы в яндекс.диск с помощью php curl?
А очень просто :)
Необходим пакет php5-curl (если у вас debian и ему подобные)
и вот такой вот код в php:
if (is_uploaded_file($_FILES['file']['tmp_name'])){ $filename = basename($_FILES['file']['name']); $filesize = filesize($_FILES['file']['tmp_name']); $fh = fopen($_FILES['file']['tmp_name'], 'r'); $remoteUrl = 'https://webdav.yandex.ru/'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $remoteUrl.$filename); curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); curl_setopt($ch, CURLOPT_USERPWD, "login@yandex.ru:password"); curl_setopt($ch, CURLOPT_PUT, true); curl_setopt($ch, CURLOPT_INFILE, $fh); curl_setopt($ch, CURLOPT_INFILESIZE, $filesize); curl_exec($ch); fclose($fh); }
Кто это там?
Андройду посвещается
Здравствуйте! Меня зовут Данил и я бывший андройдоголик. После того как я завязал с андройдом моя жизнь стала лучше. Я стал крепче спать, интернет на мобильном устройстве стал работать значительно быстрее, и что самое главное — я перестал жить около розетки. Я ненавидел андройд за зарядные устройства везде: дома, на работе, в машине, в гостях. Моего андройда мне хватало максимум на 4 часа неактивного использования. Теперь в моей жизни этому бреду нет места. Я забыл что такое зарядка, мне хватает пол часа утром перед работой зарядить телефон, чтобы весь день не выпускать его из рук. Он перестал ставить миллион обновлений в день. Я забыл что такое случайно разблокировать экран в кармане ногой и позвонить кому-нибудь. Я счастлив, что теперь все работает без затупливаний, зависаний и тормозов..
Пост ненависти к андройду, короче..
gnokii smsd init.d script для debian squezee
В интернетах всего одна русскоязычная статья про настройку этого чуда под debian, и она в общем-то почти целиком работает за искючением init.d скрипта, который стартует сервис, но он остается в терминале висеть.
Читать далее gnokii smsd init.d script для debian squezee