Загружаю файл через PHP: <?php$uploaddir = '/var/www/uploads/';$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);echo '<pre>';if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) { echo "good\n";} else { echo "bad\n";}echo 'Debug:';print_r($_FILES);print "</pre>";?> В браузере получаю вывод: Code: good Debug:Array ( [userfile] => Array ( [name] => проверка.docx [type] => application/vnd.openxmlformats-officedocument.wordprocessingml.document [tmp_name] => /tmp/phpqv4VOd [error] => 0 [size] => 14144 ) ) На сервере имею: Code: user@test111:/var/www/uploads$ ls ''$'\320\277\321\200\320\276\320\262\320\265\321\200\320\272\320\260''.docx' Как сделать нормальное имя файла при получении? Спасибо. p.s.: гружу из под винды, сервер на linux p.p.s.: php7.2-fpm + nginx
PHP: ...$filename = iconv('CP1251','UTF-8', $_FILES['userfile']['name']);$uploadfile = $uploaddir . basename($filename);... Попробуй так, если не получится будем дальше думать.
К сожалению это не дало никакого результата. Может нужны еще какие-то входные данные? Проблема оказалась в самой ОС. Англоязычная Ubuntu Server 18.04 не поддерживает русскую локаль из коробки. Извините, что потревожил, спасибо за помощь.
Есть код на Yii2,который принимает на себя авторизационные данные пользователя и выводит их на экран: Так выводит email Code: . Html::beginForm(['/site/logout'], 'post') . Html::submitButton( 'Выйти (' . Yii::$app->user->identity->email . ')', ['class' => 'btn btn-link'] ) . Html::endForm() А так логин вк Code: . Html::beginForm(['/site/logout'], 'post') . Html::submitButton( 'Выйти (' . Yii::$app->user->identity->name . ')', ['class' => 'btn btn-link'] ) . Html::endForm() Как правильно составить запрос, чтобы он выводит либо email либо name. При выборе одного из параметров - другой указывается как выйти()
Я тут занимаюсь парсингом html регулярками и уже чувствую, что он близко В общем, есть что-то типа Code: ... <table> ... </table> ... <table> ... </table> Как можно выцепить в отдельные переменные все с первого и второго тэйбла?
Na hostinge (php+curl) script Ego zadacha rabotat' 24/7, a on prerivaetsia cherez minut 5 Kak est sposobi ego postoyanno zapuskat'?
Eto est' ini_set('max_execution_time', 0); set_time_limit(0); ni_set('memory_limit', '9999G'); chet ne prokatilo - vidimo na crontab net privilegiy, eshe varianti? (scripti na shellah, mozno ispolzovat server)
net, no on statichno rabotaet (urls sohraniaet obrabotannie v log), prosto ostanavlivaetsia hostingi vidimo obrezaut max_execution_time hotel php botnet iz shelov sobrat' - pododno email releyam i vprincipe daze esli hostingi rezut max_time, to udalenno mozno zapuskat' kazdie 3 minuti vse odnotipnie bot_script (nu ili skolko tam default limit)
Есть специальные сервисы, которые вроде как запускают ваш пхп скрипт через промежутки времени. Я знаю лишь cron-job.org Но не уверен, что это подойдет в вашем случае. Можно попробовать разные уловки, например, запускать скрипту самого себя
скажите как реализовать есть 1 файл со строками 11111111:ababababa есть 2 файл со строками cccccsdssss:11111111 нужно сделать 3 файл cccccsdssss:ababababa
PHP: <?php$files = ['text1.txt','text2.txt']; foreach($files as $f){ $alltxt[]= file_get_contents($f); }file_put_contents('text3.txt', explode(':', $alltxt[1])[0].':'.explode(':', $alltxt[0])[1]); Code: cccccsdssss:ababababa
PHP: <?php$f1 = file('file1.txt', FILE_IGNORE_NEW_LINES);$f2 = file('file2.txt', FILE_IGNORE_NEW_LINES);$f3 = [];foreach($f2 as $k => &$v) $f3[] = strstr($v, ':', true).strstr($f1[$k], ':');file_put_contents('file3.txt', implode(PHP_EOL, $f3));?>
блин не то, это все понятно в 1 файле много строк где 11111:abcs 22222:2abcd во 2 файле: dcbsss:22222 gghhj:11111 нужно сделать 3 файл abcs:gghhj 2abcd:dcbsss тоесть находим общий ключ например 11111 в обоих файлах и склеиваем тогда abcs из 1ого файла и : gghhj 2ого файла
только тебе и понятно. в первоначальном ТЗ ни слова про общий ключ! PHP: //$f1 = file('file1.txt', FILE_IGNORE_NEW_LINES);//$f2 = file('file2.txt', FILE_IGNORE_NEW_LINES);$f1 = ['11111:abcs','22222:2abcd'];$f2 = ['dcbsss:22222','gghhj:11111'];$db1 = $db2 = $db3 = [];foreach($f1 as $s){ list($k, $v) = explode(':', $s); $db1[$k] = $v;}foreach($f2 as $s){ list($k, $v) = explode(':', $s); $db2[$v] = $k;}foreach($db1 as $k => $v) if(isset($db2[$k])) $db3[] = $v.':'.$db2[$k];file_put_contents('file3.txt', implode(PHP_EOL, $db3));