Repository navigation
Expand file tree
/
Copy pathtest.php
More file actions
75 lines (58 loc) · 2.28 KB
/
Copy pathtest.php
File metadata and controls
75 lines (58 loc) · 2.28 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
<?php
//Get scripts
$files = scandir('scripts');
$members = [];
function getScripts($files)
{
$extensions = [
'js' => 'node',
'php' => 'php',
'py' => 'Python',
'javac' => 'java',
];
foreach ($files as $file) {
$ext = pathinfo($file, PATHINFO_EXTENSION);
// var_dump($ext);
if (array_key_exists($ext, $extensions)) {
$scripts[] = ['name' => 'scripts/' . $file, 'command' => $extensions[$ext], 'filename' => $file];
}
}
return $scripts;
};
$scripts = getScripts($files);
foreach ($scripts as $key => $script) {
if (file_exists($scripts[$key]['name'])) {
$read = exec("{$scripts[$key]['command']} {$scripts[$key]['name']}");
$content[] = ['output' => $read, 'filename' => $scripts[$key]['command']];
}
}
$re = '/^Hello World, this is (?<first>\[\w+\])? (?<last>\[\w+\])? with HNGI7 ID (?<id>\[HNG-\d+\])? using (?<language>\[\w+\])? for stage 2 task. /i';
foreach ($content as $key => $data) {
$output = $content[$key]['output'];
$str = $output;
$email = explode(" ", $str);
$email = array_pop($email);
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);
$filename = $content[$key]['filename'];
if ($matches) {
foreach ($matches as $match) {
$userData = $match[0];
$data = preg_replace('/\[/i', '', $userData);
$data = preg_replace('/\]/i', '', $data);
$message[] = ['message' => $data, 'pass' => true];
$members[] = ['id' => $match['id'], 'firstname' => $match['first'], 'lastname' => $match['last'], 'email' => $email, 'language' => $match['language'], 'filename' => $filename];
}
} else {
$userMessage = str_replace($email, '', $output);
$userMessage = preg_replace('/\[/', '', $userMessage);
$userMessage = preg_replace('/\]/', '', $userMessage);
$message[] = ['message' => $userMessage, 'pass' => false];
}
} else {
$failed = "You did not provide a valid email address. Your String must return an email";
$message[] = ['message' => $failed, 'pass' => false];
}
}
var_dump($members);
var_dump($message);