2

I saw some other user here asking this and I tried what they said in the answer section, but nothing had worked for me.

I have this variable:

$inputs = \Request::all();
$domain = $inputs['domain'];

Now in $domain is the domain-name I need.

This is my function:

function searchfor ($search)
{
    $path = '/var/www/laravel/logs/vhosts/';
    $shell_exec = shell_exec("grep -c -i $search  $path" . $domain . ".log");
    return $shell_exec;
}

This haven't worked cause of course PHP doesn't know what $domain is.

Now I tried put a global $domain; in the function but this haven't worked either.

I also tried this:

function anzahlsuche($search) use ($domain) { ... }

But it's the same, it doesn't worked for me.

Does somebody have another idea what I can do?

I'm using the Laravel Framework, maybe someone knows a solution in laravel, normal php would do it too, of course.

vard
  • 4,057
  • 2
  • 26
  • 46
ItzMe42
  • 211
  • 2
  • 9

1 Answers1

3

two options - pass the variable as a parameter to the function or use the global expression to name the variable within the function. The variable must be available in the scope that the function is called.

 $inputs = \Request::all();
 $domain = $inputs['domain'];

 function anzahlsuche($search,$domain)
        {
            $path = '/var/www/laravel/logs/vhosts/';
            $shell_exec = shell_exec("grep -c -i $search  $path" . $domain . ".log");
            return $shell_exec;
        }

 function anzahlsuche($search)
        {
            global $domain;
            $path = '/var/www/laravel/logs/vhosts/';
            $shell_exec = shell_exec("grep -c -i $search  $path" . $domain . ".log");
            return $shell_exec;
        }
Professor Abronsius
  • 33,063
  • 5
  • 32
  • 46
  • There is also a third option, that is to create an anonymous function so that you can use the `use($var)` syntax. This is usually considered as a bad practice though, as you don't create anonymous functions when you can create a normal function. – SOFe Jan 28 '16 at 10:38
  • first way worked perfect! thanks! – ItzMe42 Jan 28 '16 at 10:40
  • seccond one havent.. I dont know why, but I'll take the first one :) – ItzMe42 Jan 28 '16 at 10:40