import array z pliku .php

import array z pliku .php
  • Rejestracja: dni
  • Ostatnio: dni
0

posiadam pliczek .php :

Kopiuj
<?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

axelbest
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Warszawa
  • Postów: 2255
0

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

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

A jeszcze lepiej

plik A.php

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

Plik B.php

Kopiuj
require_once('A.php');     
$x = ArrayHolder::getMyArray();
Maciej Cąderek
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Warszawa
  • Postów: 1264
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:

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

i wczytac plik:

Kopiuj
$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:

Kopiuj
<?php 
return [
  'asda' => 'cxzxzc',
  'bbbv' => 'asdaw',
];
Kopiuj
<?php 
$arr = include('arr.php');
  • Rejestracja: dni
  • Ostatnio: dni
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

  • Rejestracja: dni
  • Ostatnio: dni
0

One Sky App

  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 158
0
Kopiuj
<?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!

  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 158
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()

Kopiuj
<?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.