Просто используйте это:
$master = $_GET["master"];
system('unzip' $master.'.zip');
в вашем коде $master
передано как строка, система будет искать файл с именем $master.zip
$master = $_GET["master"];
system('unzip $master.zip'); `enter code here`
Я вполне уверен, необходимо сделать это твердый путь. В предыдущем моем задании у нас был очень изящный процесс обработки ошибок для VB6 с компонентами DCOM. Однако это был много избыточного кода, который должен был быть добавлен к каждому методу, так что мы произвели инструменты своими силами для вставки всего этого для Вас.
я не могу обеспечить слишком много понимания на его реализации (и потому что я забыл большую часть относительно него и существует шанс, они могут считать это коммерческой тайной). Одна вещь, которая действительно выделяется, состояла в том, что имя метода не могло быть получено во времени выполнения, таким образом, оно было добавлено как строковая переменная (некоторые разработчики будут вставка копии вместо того, чтобы использовать инструмент, и оно привело бы к ошибочным стопкам, которые лгали...).
HTH
Действительно необходимо сделать это твердый путь, но это не действительно весь это трудно... Серьезно, как только Вы записали шаблон однажды, это - быстрое, копируют/вставляют/изменяют для соответствия имени функции в Допущении ошибку. Оператор повышения к фактическому имени функции.
Private Function DoSomething(ByVal Arg as String)
On Error GoTo Handler
Dim ThisVar as String
Dim ThatVar as Long
' Code here to implement DoSomething...
Exit Function
Handler:
Err.Raise Err.Number, , "MiscFunctions.DoSomething: " & Err.Description
End Function
, Когда у Вас есть вложенные вызовы, это раскручивается, поскольку каждая стандартная программа поражает свой Обработчик и добавляет ее имя к описанию ошибки. В высокоуровневой функции Вы получаете "стек вызовов", показывающий список стандартных программ, которые назвали, и код ошибки и описание ошибки, которая на самом деле произошла. Это не прекрасно, в этом Вы не получаете номера строки, но я нашел, что Вам обычно не нужны они для нахождения пути к проблеме. (И если Вы действительно хотите номера строки, можно поместить их в функцию и сослаться на них в Допущении ошибку. Оператор повышения с помощью переменной Эрл. Без номеров строки, который просто возвращается 0.)
кроме того, обратите внимание, что в самой функции, можно повысить собственные ошибки со значениями интересных переменных в сообщении как так:
Err.Raise PCLOADLETTER_ERRNUM, , "PC Load Letter error on Printer """ & PrinterName & """"
(Подсветка синтаксиса смотрит wonky в предварительном просмотре... Интересно, как это посмотрит при регистрации?)
Твердым, ручным путем является в значительной степени единственный путь. Если Вы проверяете этот вопрос, кто-то предложил инструмент под названием MZTools, который сделает большую часть трудной работы для Вас.
Compuware (или было это Numega в то время) DevStudio для Visual Basic 6 раньше делал это. Путь был путем добавления добавляющий instrumenation к каждому вызову, который названный очень маленьким отрывком, который добавил к стопке кода. На любой ошибке это разгрузило тот стек вызовов и затем сделало вещи как почта или сообщение к веб-серверу вся отлаживающая информация. Добавление и удаление инструментария были потенциально смертельной операцией (особенно тогда, когда мы использовали VSS в качестве нашего управления исходным кодом), но если это работало, это работает хорошо.
Как Darrel указал , Вы могли добавить что-то очень simlar при помощи MZTools и установки шаблона. Это - большая работа и является, вероятно, большим количеством effeort, чем вознаграждение было бы всего лишь, если Вы имеете очень трудный разыскать ошибки, это могло бы помочь).