import array z pliku .php

0

posiadam pliczek .php :

<?php 
array(
'asda' => 'cxzxzc',
'bbbv' => 'asdaw',
....
)

jak mogą dołączyc to do mojego projektu, bym tą tablicę miał w zmiennej ?

nie mogę dac rady :(

Pozdrawiam
Piotrek

0

Wydaje mi się że, możesz zrobić taka dziwną konstrukcję

$x = include('TwojPlik.php');

A jeszcze lepiej

plik A.php

class ArrayHolder
{
    public static function getMyArray()
    {
        return [
            'asda' => 'cxzxzc',
            'bbbv' => 'asdaw',
        ];
    }
}

Plik B.php

require_once('A.php');     
$x = ArrayHolder::getMyArray();
0

Nie przypisujesz tablicy do żadnej zmiennej, więc jak zainkludujes plik pliczek.php to przepada ona w próżni.

Chyba najlepiej dane tablicy wrzucić w json:

{
  "asda": "cxzxzc",
  "bbbv": "asdaw"
}

i wczytac plik:

$arr = json_decode(file_get_contents('/path/to/file.json'), true);

Edit:
Wygląda na to, że mozesz uzyc includa jeśli zwrócisz tablicę z pliku:

<?php 
return [
  'asda' => 'cxzxzc',
  'bbbv' => 'asdaw',
];
<?php 
$arr = include('arr.php');
0

Problem w tym, ze pliczek pobieram z zewnatrz z api i dostaje go w takiej formie, nie mam mozliwosci edycji go,

jakies inne pomysly ? kombinowalem z ob_start, ale albo nie dziala, albo nie umiem :)

Pozdrawiam

0

One Sky App

0
<?php
$buff=file_get_contents('plik.php');
$buff=str_replace('array(','$x=array(',$buff);
eval('?>'.$buff);
print_r($x);
?>

Ale to trochę lipa, najlepiej poprosić o przesyłanie w odpowiednim formacie (JSON, XML, etc)
Edit:
z puntu widzenia bezpieczeństwa, nie należy wykonywać Eval() na niezaufanych plikach!

0

wersja z parserem. parser jest bardzo prosty, nie obejmuje wszystkich możliwości (np. wartości w nowej linii), ale za to bez Eval()

<?php
$x=array();
$buff=file('plik.php');
foreach($buff as $line)
 if(strpos($line,'=>')) {
  preg_match("/\s*'(?P<key>.*)'\s*=>\s*'(?<value>.*)'.*/",$line,$match);
  $x[$match['key']]=$match['value'];
 }
print_r($x);
?>

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.