joesmist
Newbie | Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору примеров в гугле много ну раз нужны подробности, то приведу необходимые дейсвтия. Для начала изменим сам DWS скрипт "public-status.dws"- это вывод статистики, для которого нинада логинится под учётной записью. Находим в начале Код: // Comment the following line (add "//") to enable public stats access Exit; | Перед словом exit ставим два слеша, чтобы его закоментировать- //Exit; Всё, теперь скрипт можно открыть в браузере и убедиться в правильности получения статистики. Идём дальше. Т.к. мне нужен вывод определённой статистики, и каждому параметру нужна своя переменая, то я оставил в этом срипте только необходимые переменые, присвоив им ID номер: Код: {$FILTER 'includes/common.dws'} procedure DoPage(); begin var Status: ComVariant; Status := Manager.Status; %> <Class ID="0"><%=Status.Version%></class> <Class ID="1"><%=FormatUptime(Status.Uptime)%></class> <Class ID="2"><%=Status.Time%></class> <Class ID="3"><%=FormatSize(Status.MemoryUsage)%></class> <Class ID="4"><%=Status.StartTime%></class> <Class ID="5"><%=Status.Users%></class> <Class ID="6"><%=Status.Transfers%></class> <Class ID="7"><%=FormatSpeed(Status.Bandwidth_In)%></class> <Class ID="8"><%=FormatSpeed(Status.Bandwidth_Out)%></class> <Class ID="9"><%=Status.FilesDownloaded%></class> <Class ID="10"><%=Status.FilesUploaded%></class> <Class ID="11"><%=FormatSize(Status.Downloaded)%></class> <Class ID="12"><%=FormatSize(Status.Uploaded)%></class> <% end; %> <% DoPage(); %> | на этом редактирование двс скрипта закончено. Можно проверить его работоспособность, набрав в браузере http://localhost:порт/public-status.dws Все значения выведутся в одну строку. Ну и дальше такой вот пхп скриптик: Код: <?php $con = file_get_contents("http://localhost:порт/public-status.dws"); preg_match("#<Class ID=\"0\".*?>(.*?)</class>#is", $con, $ver); $ver="$ver[1]"; preg_match("#<Class ID=\"1\".*?>(.*?)</class>#is", $con, $sut); $sut="$sut[1]"; preg_match("#<Class ID=\"2\".*?>(.*?)</class>#is", $con, $st); $st="$st[1]"; preg_match("#<Class ID=\"3\".*?>(.*?)</class>#is", $con, $smu); $smu="$smu[1]"; preg_match("#<Class ID=\"4\".*?>(.*?)</class>#is", $con, $sst); $sst="$sst[1]"; preg_match("#<Class ID=\"5\".*?>(.*?)</class>#is", $con, $sus); $sus="$sus[1]"; preg_match("#<Class ID=\"6\".*?>(.*?)</class>#is", $con, $str); $str="$str[1]"; preg_match("#<Class ID=\"7\".*?>(.*?)</class>#is", $con, $sin); $sin="$sin[1]"; preg_match("#<Class ID=\"8\".*?>(.*?)</class>#is", $con, $sot); $sot="$sot[1]"; preg_match("#<Class ID=\"9\".*?>(.*?)</class>#is", $con, $sfd); $sfd="$sfd[1]"; preg_match("#<Class ID=\"10\".*?>(.*?)</class>#is", $con, $sfu); $sfu="$sfu[1]"; preg_match("#<Class ID=\"11\".*?>(.*?)</class>#is", $con, $std); $std="$std[1]"; preg_match("#<Class ID=\"12\".*?>(.*?)</class>#is", $con, $stu); $stu="$stu[1]"; $final="<table><tr><td>Gene6 FTP Server ".$ver."<br />В cети: ".$sut."<br />ОЗУ использовано: ".$smu."<br />Время сервера: ".$st."<br />Сервер включён с: ".$sst."<br />Пользователей: ".$sus."<br />Передач: ".$str."<br />Входящая скорость: ".$sin."<br />Исходящая скорость: ".$sot."<br />Файлов скачано: ".$sfd."<br />Файлов загружено: ".$sfu."<br />Скачано: ".$std."<br />Отправлено: ".$stu."</td></tr></table>;" print($final); ?> | вот такой вот примерчик получился. В принципе можно обойтись и одной переменной, и одной операцией парсинга, но как я уже выше написал, мне нужно именно каждому значению присваивать переменую, поэтому только так. |