<input name = "test[key1]" value="значение1">text1
<input name = "test[key2]" value="значение2">text2
<input name = "test[key3]" value="значение3">text3
foreach ($_POST['test'] as $key=>$value) {
print "У ключа $key значение $value ";
}
<input name = "test[]" value="значение1">text1
<input name = "test[]" value="значение2">text2
<input name = "test[]" value="значение3">text3
print $_POST['test'][0]; // Значение1
print $_POST['test'][1]; // Значение2
www.youtube.com/get_video_info?video_id=XXXXXX
XXXXXX
подставьте хэш видео, который в ссылке на ролик, типа youtu.be/BWCiWZtrWXU
после слеша.url_encoded_fmt_stream_map
. Его значение опять надо распаковать как URL-параметры. И из результата вытащить параметр url
– это ссылка на единый скачивабельный видеофайл.function getUrlParams(search) {
let hashes = search.slice(search.indexOf('?') + 1).split('&')
let params = {}
hashes.map(hash => {
let [key, val] = hash.split('=')
params[key] = decodeURIComponent(val)
})
return params
}
var s = '------'; // здесь длиннющая строка из ответа /get_video_info
var a = getUrlParams(s);
var b = getUrlParams(a.url_encoded_fmt_stream_map);
console.log(b.url); // эту ссылку открываем в браузере - это скачиваемый видеофайл
$myCurl = curl_init();
curl_setopt_array($myCurl, array(
CURLOPT_URL => 'http://target.site.com/form.php',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => http_build_query(array(/*здесь массив параметров запроса*/))
));
$response = curl_exec($myCurl);
curl_close($myCurl);
echo "Ответ на Ваш запрос: ".$response;
async getTickets(slot_id) {
try {
const { data } = await axios.get('/api/tickets/' + slot_id)
return data
} catch (e) {
throw new Error(e)
}
}
Следующий вопрос,как организовать передачу этого самого id_people в таблицу комментарии?
module.exports = function(grunt) {
var lessFolderPath = 'Less';
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
less: {
options: {
paths: ['Less/']
},
files: {
expand: true,
cwd: lessFolderPath + '/',
dest: "Modules/",
src: "*.less",
ext: ".css"
}
},
autoprefixer:{
options: {
browsers: ['> 1%', 'last 2 versions', 'Firefox ESR', 'Opera 12.1'],
cascade: false
},
multiple_files: {
expand: true,
flatten: true,
cwd: 'Modules/',
src: '*.css',
dest: 'Modules/'
}
},
watch: {
less: {
files: ['Less/*.less'],
tasks: ['less', 'apr'],
options: {
spawn: false
}
}
}
});
grunt.loadNpmTasks('grunt-autoprefixer');
grunt.loadNpmTasks('grunt-contrib-less');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.registerTask('default', ['watch:less', 'watch:css']);
grunt.registerTask('apr', ['autoprefixer']);
grunt.event.on('watch', function(action, filepath, target) {
var filePathName = filepath.replace(lessFolderPath + '\\','');
var fileName = filePathName.replace('.less','');
grunt.log.writeln(target + ': ' + filePathName + ' has ' + action);
grunt.config('autoprefixer.multiple_files.src', [fileName + '.css']);
grunt.config('less.files.src', [filePathName]);
});
};