#php
#php
Вопрос:
У меня есть PHP function
, который поворачивает некоторые изображения и другие переменные.
Что я хотел бы сделать, так это записать эти переменные в другой файл, размещенный в другом домене, и использовать их в моей функции.
Это моя функция (без переменных):
$percent_arr = array();
foreach($block as $k => $_l) {
$percent_arr = array_merge($percent_arr, array_fill(0, $_l['percent'], $k));
}
$random_key = $percent_arr[mt_rand(0,count($percent_arr)-1)];
$theblock = $block[$random_key]['block'];
$theblock2 = $block[$random_key]['tracking'];
echo $theblock . ' »» ' . $theblock2;
Это переменные, которые я хотел бы разместить в другом файле (размещенном в другом домене):
$src1 = '1.jpg';
$src2 = '2.jpg';
$block[1] = array('block' => $src1 , 'percent' => 50, 'track' => '1');
$block[2] = array('block' => $src2 , 'percent' => 50, 'track' => '2');
Возможно ли это, как?
Комментарии:
1. как переменные вращаются?
Ответ №1:
Вы могли бы сделать что-то вроде следующего:
В вашем удаленном домене:
<?php
$src1 = '1.jpg';
$src2 = '2.jpg';
$blocks =
[
'1' => ['block' => $src1 , 'percent' => 50, 'track' => '1'],
'2' => ['block' => $src2 , 'percent' => 50, 'track' => '2']
];
$serialized = serialize($blocks);
echo $serialized;
На вашем другом:
$blocks = unserialize(file_get_contents('http://example.com/path/to/blocks.php'));
Однако вы, вероятно, захотите кэшировать выборку. Потому что это может быть блокировкой.
Комментарии:
1. стандартный json bog безопаснее, чем сериализовать, хотя маловероятно, что домен будет захвачен, по крайней мере, вы не можете выполнить созданный код
Ответ №2:
Если я правильно понял, вы в основном спрашиваете о $ _GET или $ _POST (если сомневаетесь, придерживайтесь первого). Вы можете использовать http_build_query(), чтобы помочь с кодированием:
$src1 = '1.jpg';
$src2 = '2.jpg';
$block = [
1 => ['block' => $src1 , 'percent' => 50, 'track' => '1'],
['block' => $src2 , 'percent' => 50, 'track' => '2']
];
$url = 'https://example.com/blah.php?' . http_build_query(['your_name_here' => $block]);
https://example.com/blah.php?your_name_here[1][block]=1.jpgamp;your_name_here[1][percent]=50amp;your_name_here[1][track]=1amp;your_name_here[2][block]=2.jpgamp;your_name_here[2][percent]=50amp;your_name_here[2][track]=2
Декодирование происходит автоматически:
print_r($_GET);
Array
(
[your_name_here] => Array
(
[1] => Array
(
[block] => 1.jpg
[percent] => 50
[track] => 1
)
[2] => Array
(
[block] => 2.jpg
[percent] => 50
[track] => 2
)
)
)