Отдельные переменные PHP в файле, размещенном в другом домене

#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
                )

        )

)