PHP - wyrażenie regularne, znajdowanie zmiennych

0

Cześć,
mam widok html (Laravel) test.blade.php a w nim zmienne $name $name1 $name2 $name3
oraz tablicę

$data = [
'name' => 'name',
'name1' => 'name1',
'name2' => 'name2'
]
dane z tablicy zamieniają zawartości zmiennych w widoku na te z tablicy, jak widać, w ta tablicy brakuje ```name3```. Główny problem polega na tym że muszę znaleźć te zmienne które są w widoku a nie ma ich w tablicy i zamienić je na puste stringi. Proszę o jakieś wskazówki ;)
0

Wiem, że muszę użyć preg_match_all jednak nie wiem jak powinno wyglądać samo wyrażenie regularne które znajdzie zmienne z widoku których nie ma tablicy

0

Napisz konkretnie co chcesz zrobić i pokaż kod z kontrolera i widoku.

0

kod widoku

{{ $name }}
<br/>
{{ $last_name }}
<br/>
{{ $city }}

kod kontrolera

public function pdf()
    {
        $data = [
            'name' => 'Name',
            'last_name' => 'Lastname'
        ];

        $path = 'test.pdf';


        $pdf = new PDFService($path, $data);
        return $pdf->generatePDF();

    }

kod service

 public function generatePDF()
    {
        $pdf = PDF::loadView($this->path, $this->data);
        return $pdf->download('test.pdf');
    }

i teraz
w widoku są trzy zmienne
imię, nazwisko i miasto
natomiast w tablicy tylko imię i nazwisko, nie mogę zrobić !empty($city) w widoku bo nie o to chodzi.
Chcę preg_match_all sprawdzić które zmienne są w widoku ale nie ma ich w tablicy do niego przekazanej i te puste zmienne zastąpić coś w stylu $name ?? ''

0

Dlaczego w widoku nie zrobisz po prostu {{ $name or '' }}?

0

ponieważ chciałem poćwiczyć użycie preg_match_all w takich sytuacji i żeby całość była uniwersalne, żeby nie dodawać za każdym razem do każdej zmiennej or ''

0

IMO wykorzystanie preg_match_all() nie ma tutaj żadnego sensu (zwłaszcza że nie jest to typowe miejsce, gdzie można by w ogóle wcisnąć wyrażenia regularne); zadanie jest samo w sobie proste, nie ma co wydziwiać: zwyczajne, nudne or da bez problemu radę, a i przynajmniej kod będzie czytelny.

1 użytkowników online, w tym zalogowanych: 0, gości: 1