Ru-Board.club
← Вернуться в раздел «Web-программирование»

» PHP: Полезные (интересные и оригинальные) решения

Автор: Sindel
Дата сообщения: 10.09.2004 21:36
Альтернативное решение для листинга.

Код: # Функция возвращает список файлов в каталоге (1-ый аргумент),
# исключая остальные файлы (остальные аргументы переданные в функцию).
function listing(){
$d = dir(array_shift($c = func_get_args()));
if(!is_object($d)) return array();
while($file = $d->read() !== FALSE) $array[$file] = $file;
$d->close();
unset($array['.'], $array['..']);
$array = array_diff($array, $c);
return $array;
}
Автор: Grigorev
Дата сообщения: 28.09.2004 11:35
Хотите всегда иметь на своем сайте актуальную информацию о:
.....
Автор: Ekib
Дата сообщения: 15.10.2004 21:24
Млин не могу войти форум мне говорит пасиб за аворизацию и каздец
Автор: Cheery
Дата сообщения: 15.10.2004 21:38
Ekib

Цитата:
Млин не могу войти форум мне говорит пасиб за аворизацию и каздец

http://forum.ru-board.com/topic.cgi?forum=13&topic=0847#1
Автор: kisin
Дата сообщения: 25.10.2004 19:54

Цитата:
$num = count($lines); // Число записей всего.
$perpage = 7; // Кол-во, показываемых записей на странице.
$pages_count = @ceil($num/$perpage);
$pages .= 'Страницы:';
for($j=1;$j<=$pages_count;$j++)
{

if ($_GET['page'] != $j)
{
$pages .= ' <a href="?page='.$j.'"><b>'.$j.'</b></a> ';
}
else
{
$pages .= ' <b>'.$j.'</b> ';
}
echo $pages;
}


У меня глюк: выводит 2 раза надпись "Страницы:" - в первом случае Страницы: 1, а затем Страницы: 1 2 (сообщений в бд всего 8).
Автор: SafeWay
Дата сообщения: 26.10.2004 14:38
kisin
1) Тут не обсуждается...
2) Ок:
$num = count($lines); // Число записей всего.
$perpage = 7; // Кол-во, показываемых записей на странице.
$pages_count = @ceil($num/$perpage);
$pages = 'Страницы:';
for($j=1;$j<=$pages_count;$j++)
{

if ($_GET['page'] != $j)
{
$pages .= ' <a href="?page='.$j.'"><b>'.$j.'</b></a> ';
}
else
{
$pages .= ' <b>'.$j.'</b> ';
}
echo $pages;
}
А так?
Автор: kisin
Дата сообщения: 26.10.2004 19:29

Цитата:
А так?

А что собственно изменилось?

Ок, обсуждение тут: http://forum.ru-board.com/topic.cgi?forum=31&topic=6448
Автор: KADABRA
Дата сообщения: 08.11.2004 15:55
Скрипт для распаковки zip архивов на сервере (в Unix PHP должен быть собран с --with-zip, в Windows дожен быть подключен extension php_zip.dll из Collection of PECL modules for PHP ):

Код:
<?php
/*
*/

$zip = zip_open("e:/www/tmp/phpMyAdmin-2.6.0-pl2.zip"); // Zip file to unpack
$folder = substr(str_replace("\\", "/", __FILE__), 0, strrpos(str_replace("\\", "/", __FILE__), "/"))."/";
echo $folder."\n<br>\n";
$files = 0;
$folders = 0;
if ($zip)
{
while ($zip_entry = zip_read($zip))
{
echo "<br>";
$name = $folder . zip_entry_name($zip_entry);
echo $name;

if($name[strlen($name) - 1] == '/')
{
mkdir($name, 0755);
$folders++;
}
elseif (zip_entry_open($zip, $zip_entry, "r"))
{
$buf = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));
$file = fopen($name, "w");
if($file)
{
fwrite($file, $buf);
fclose($file);
$files++;
}
else
{
echo "Error OPENING file $name";
}

zip_entry_close($zip_entry);
}

}

echo "\n<br>Unpacked $files files and $folders folders";

zip_close($zip);

}
else
{
echo "<br>\n ERROR OPENING zip!";
}

?>
Автор: dacuan
Дата сообщения: 08.11.2004 16:37
KADABRA
Небольшая приписка:
Для функций чтения zip-файлов PHP должен быть собран с опцией --with-zip
Автор: KADABRA
Дата сообщения: 08.11.2004 16:40
dacuan

Цитата:
Для функций чтения zip-файлов PHP должен быть собран с опцией --with-zip

Забыл указать. Спасибо.
Автор: Maxer
Дата сообщения: 08.11.2004 17:09
KADABRA
Очень помогло! Теперь не надо распакововать файлы, а сразу можно закачивать .zip'ом. Может граф. интерфейс приделаешь?
Автор: KADABRA
Дата сообщения: 08.11.2004 17:16
Maxer

Цитата:
Очень помогло! Теперь не надо распакововать файлы, а сразу можно закачивать .zip'ом. Может граф. интерфейс приделаешь?

Может потом.
All
Похоже пора шапку проектировать
Автор: G_Drey_V
Дата сообщения: 13.11.2004 23:13
есть вопросик.. может немножко не в тему, так что заранее извините.
Итак, проблема с модулями из PHP, почему-то половина не грузится... т.е. при старте сервера (Apache) появляется ошибка а-ля Error loadin moudle - ".../php_....dll" - не могу загрузить указанный модуль. Причем не грузится примерна половина модулей, т.е. что-то грузится, а что-то нет, несмотря на то, что они все лежат в одном и том же месте.
А если поконкретнее - мне нужен модуль php_exif.dll на PHP 5.0.2, Apache - 2.0.46
Автор: SiMM
Дата сообщения: 14.11.2004 00:24
Начни с того, что выкинь Apache 2.0 на помойку, поскольку связка Apache2+PHP врядли когда нибудь избавиться от экспериментальности. Как устанавливать тот или иной модуль - написано в соответствующем разделе мана (иногда бывают особенности для юзверей виндовс).
И вообще, какого лешего ты полез в этот топик, который к твоему вопросу отношения не имеет? Создал бы новый...
Автор: G_Drey_V
Дата сообщения: 14.11.2004 08:46
а... да... чуть не забыл... все это стоит под Windows.
А если не выкидывать Apache 2, а все так попытаться настроить то, что есть?
Автор: Pleshkov
Дата сообщения: 15.11.2004 22:35
G_Drey_V
а файл php_exif.dll точно существует???
Если надо, напиши мне на support[at]problem-net.com или pleshkov[at]bk.ru ([at] поменять на @) вышлю модуль, у меня есть ..... Если файл php_exif.dll существует, вышли мне на мыло свой конфиг php.ini
Автор: G_Drey_V
Дата сообщения: 15.11.2004 22:42
написал... заранее спасибо
Автор: sket4
Дата сообщения: 24.11.2004 20:35
А Может сюда в тему еще добавить скриптов взаимодействия с различными софтинами, типа совмещения авторизации на форуме и сайте, и взаимодействия и другими "девайсами" в вебе как никак облегчение работы и новая инфа,
а так тема - супер, продолжать в том же духе
Автор: Church
Дата сообщения: 26.11.2004 00:32
[offtop]

Цитата:
А Может сюда в тему еще добавить скриптов взаимодействия с различными софтинами, типа совмещения авторизации на форуме и сайте


Сколько разных форумов... сколько разных сайтов... Кроме того, за этим надо или в категорию о CMS'ках идти или в категорию о форумах...
И с такими готовыми скриптами - лучше туда обращаться... Пользы людям будет больше... Тут "Веб-программирование" все-таки, а не поиск/дележ скриптов...
[/offtop]
Автор: El Desperado
Дата сообщения: 14.12.2004 04:49
Классик для мониторинга времени на парсинге php.


Код:
class timer {

``var $start;
``var $stop;

``function start() {
````$t = gettimeofday();
````$this->start = $t['sec'] * 1000000.0 + $t['usec'];
``}

``function stop() {
````$t = gettimeofday();
````$this->stop = $t['sec'] * 1000000.0 + $t['usec'];
``}

``function show() {
````if (!isset($this->stop)) $this->stop();
````$elaps = ($this->stop - $this->start) / 1000000.0;
````if ($elaps < 0.0001) {
``````$elaps = "< 0.0001";
````} else {
``````$elaps = round($elaps, 4);
``````$elaps = number_format($elaps, 4);
````}
````return $elaps . " s.";

``}
}

// Сразу после создания класса запускаем главный таймер сайта
$mainTimer = new timer;
$mainTimer->start();

Автор: Yamb
Дата сообщения: 11.02.2005 18:22
Дайте ссылку на класс который бы сам формировал таблицы из SQL запросов, этот бы подошел http://www.phpclasses.org/browse/package/2052.html но phpclasses.org как обычно в дауне...

Добавлено:
Сорри, нашел сам.


Код:
class swemc
{
var $aResult = array();
var $iConnID;
var $strHost;
var $strUser;
var $strPass;
var $strDb;
var $iFields;
var $iRecs;
var $aFieldNames = array();
var $aTdwidth = array();
var $bDebug = FALSE;

function swemc ()
{
define ("MYSQLHOST","localhost");
define ("MYSQLUSER","root");
define ("MYSQLPASS","");
define ("MYSQLDB","reloader");
$this->strHost = MYSQLHOST;
$this->strUser = MYSQLUSER;
$this->strPass = MYSQLPASS;
$this->strDb = MYSQLDB;

$this->iFields = 0;
$this->iRecs = 0;
$this->bDebug = FALSE;

return ($this->connect()) ;
}


function connect()
{
$this->iConnID=@mysql_connect($this->strHost, $this->strUser, $this->strPass);
if ($this->iConnID)
{
if (@mysql_select_db($this->db))
return $this->iConnID;
else
{
if ($this->bDebug == TRUE)
$this->printerror();
return FALSE;
}

}
else
{
if ($this->bDebug == TRUE)
$this->printerror();
return FALSE;
}

}

function disconnect()
{
$this->free_result();
if ( @MYSQL_CLOSE($this->iConnID))
$this->iConnID = FALSE;
}


function query($querystring)
{
if (!$this->iConnID)
die("No connection to mySql<br>");
$this->aResult = mysql_db_query($this->strDb,$querystring,$this->iConnID);
if ( !$this->aResult)
{
if ($this->bDebug == TRUE)
$this->printerror(1); // print the errmsg and exit

}

if ( eregi("select",$querystring))
{
$this->iRecs = @mysql_num_rows($this->aResult);
$this->iFields = @mysql_num_fields($this->aResult);

// get the field-names
for($x=0;$x<$this->iFields;$x++)
{
$this->aFieldNames[$x] = @mysql_field_name($this->aResult,$x);
}
return $this->iRecs;
}
elseif ( eregi("insert",$querystring))
{
return mysql_insert_id($this->iConnID);
}
else
{

return ( mysql_affected_rows($this->iConnID));
}
}


function td_width($width_array)
{
$x = count($width_array);
if ($x != $this->iFields)
{
if ($this->bDebug)
{
echo "incorrect number in width-array<br>";
echo " $x in array, $this->iFields in record";
}
return;
}
for ($i = 0; $i < $x; $i++)
$this->aTdwidth[$i] = $width_array[$i];
}



function tab_out($with_table_head,$css_class="noCSS" )
{

if (count($this->aTdwidth)) // are there width-values ?
$bWidth = TRUE;
else
$bWidth = FALSE;
echo "<table border='1'";
if ($css_class != "noCSS")
echo "class=\"$css_class\" ";
echo ">";

if ( $with_table_head == TRUE )
{
echo "<tr class=\"$css_class\">";
for ($i=0;$i<$this->iFields;$i++)
{
if ($bWidth == TRUE)
$width = $this->aTdwidth[$i];
else
$width = 100/$this->iFields."%";
echo "<th class=\"$css_class\" width=\"$width\">";
echo ucfirst($this->aFieldNames[$i]);
echo "</th>";
}
echo "</tr>";
}

for ($j = 0; $j < $this->iRecs; $j++)
{
echo "<tr class=\"$css_class\">";
for ($k=0;$k<$this->iFields;$k++)
{
if ($bWidth == TRUE)
$width = $this->aTdwidth[$k];
else
$width = 100/$this->iFields."%";
echo "<td width=\"$width\" class=\"$css_class\">";
$xtmp = mysql_result($this->aResult,$j,$k);
if (strlen($xtmp))
echo $xtmp;
else
echo"&nbsp;";
echo "</td>";
}
echo "</tr>";
}

echo "</table>";
}


function tb_tab_out($css_class="standard", $width="80%")
{

if (count($this->aTdwidth))
$arr_breiten = TRUE;
echo "<p class=\"center\"><table class=\"$css_class\" width='$width' align='center'>";
echo "<tr>";

for ($i=0;$i<$this->iFields;$i++)
{
if ($arr_breiten)
$width = $this->aTdwidth[$i];
else
$width = 100/$this->iFields."%";

echo "<th width=\"".$width."\">";
echo strtoupper($this->aFieldNames[$i]);
echo "</th>";
}


echo "</tr>";


for ($j = 0; $j < $this->iRecs; $j++)
{
echo "<tr>";
$l=0;
for ($k=0;$k<$this->iFields-1;$k++)
{
if ($arr_breiten)
$width = $this->aTdwidth[$k];
else
$width = 100/$this->iFields."%";
echo "<td width=\"".$width."\">";
$xtmp = mysql_result($this->aResult,$j,$k);
if (strlen($xtmp))
echo $xtmp;
else
echo"&nbsp;";

echo "</td>";
$l=$k+1;
}
if ($arr_breiten)
$width = $this->aTdwidth[$k];
else
$width = 100/$this->iFields."%";
echo "<td width=\"".$width."\">";
$xtmp = mysql_result($this->aResult,$j,$l);
$param = "detail";
$paramwert = $xtmp;
$act_url = "detail.php";
if (strlen($xtmp))
echo postButton("Ansehen",$act_url,$param,$paramwert);
else
echo"&nbsp;";

echo "</td>";
echo "</tr>";
}

echo "</table></p>";
}


function fetch_field($recno,$fieldno_or_fieldname)
{
return mysql_result($this->aResult,$recno,$fieldno_or_fieldname);
}

function fetch_record($recno,$arr_type = MYSQL_BOTH)
{
if (!@mysql_data_seek($this->aResult,$recno))
{
if ($this->bDebug == TRUE)
$this->printerror(TRUE);
}
$arr = mysql_fetch_array($this->aResult,$arr_type);
return $arr;
}

function single_out($recno,$cssClass="noCSS" )
{

echo "<table border=\"1\"";
if ($cssClass != "noCSS")
echo " class=\"$cssClass\"";
echo ">";

for ($i=0; $i < $this->iFields; $i++)
{
echo "<tr>";
echo "<td class=\"".$tableclass."\">";
echo strtoupper($this->aFieldNames[$i]);
echo "</td>";
echo "<td class=\"".$tableclass."\">";
$xtmp = mysql_result($this->aResult,$recno,$i);
if (strlen($xtmp))
echo $xtmp;
else
echo"&nbsp;";
echo "</td>";
echo "</tr>";
}
echo "</table>";


}


function free_result()
{
if($this->aResult)
{
@mysql_free_result($this->aResult);
$this->iRecs = $this->iFields = 0;
}
}



function printerror($exitnow = "FALSE")
{
echo "mySQL-Error No: " . mysql_errno()." - " .mysql_error();
if ($exitnow)
exit;
}


}
Автор: ord
Дата сообщения: 17.02.2005 10:40
Может кому пригодиться.
Небольшой заменитель phpmyadmin, умеет создавать/редактировать/удалять таблицы и поля.
Как только будет время даделую работу с данными, и смену баз, может еще что-нить сделаю - предлагайте.

_ttp://wet.ru2.info/stat.zip
Автор: 3style
Дата сообщения: 24.03.2005 13:56
Я тут новенький, да и вообще PHP начал заниматься не давно (хотя и это преувеличение)...прошу мне подсказать, каким образом при нажатии на кнопку инфа перемещаеться из одной <textarea> в другую....за ранее огромное спасибо....nick_galoch@mail.ru
Автор: zhecka1
Дата сообщения: 05.04.2005 15:29
это тебе надо в форум по JavaScript ...
Автор: BarmaLINI
Дата сообщения: 06.04.2005 12:49
забавное решение, случайно нарвался .. может кому будет полезно :о)

switch(true)
{
case ($a==5 && $b==7):
...
break;
case ($a==12):
...
break;
}
Автор: Kokoc
Дата сообщения: 06.04.2005 16:11
Вот еще от меня полезный скрипт, если кто хочет давать погоду на своем wap-сайте:

Код:
<?
// URL страницы города. Найдите на www.gismeteo.ru свой
define('URL','http://www.gismeteo.ru/weather/towns/37021.htm');
// Имя файла кэша. Должен иметь права доступа 666 (rw-rw-rw)
define('WEATHER_CACHE_FILE','weather.cache');

Header("Content-type:text/vnd.wap.wml");
include("wapfunc.inc");
WML_Header();
print "<card id=\"weather\" title=\"Weather\">\n";
// Проверяем сущестование файла-кэша и что он новый:
if(file_exists(WEATHER_CACHE_FILE) && filesize(WEATHER_CACHE_FILE)>1000 &&
(time() - filemtime(WEATHER_CACHE_FILE) < 7200)) {
$w = unserialize(file_get_contents(WEATHER_CACHE_FILE));

} else {
// вытаскиваем страницу из gismeteo.
$fp=@fopen(URL,"r");
if(!$fp) {
print "<p>ERROR $message</p>";
print "</card></wml>\n";
exit(0);
}
$content="";
while(!feof($fp)) { $content .= fgets($fp,512); }
fclose($fp);
// парсим HTML
preg_match("/Для печати<\\/a><\\/b><\\/span><\\/td><\\/tr>(.*)<\\/table>/U",$content,$m);
$z=preg_replace("/<tr>|<\\/a>|<span class=sml>|<\\/span>|\\snowrap\\s|align=center|bgcolor=([0-9A-F]+>)/","",$m[1]);
$z=preg_replace("/<td|a\\s.+\\>/U","",$z);
$z=str_replace("<br>"," ",$z);
$rows = split("</tr>",$z);
// 0 - заголовк (время).
// 1 - облачность
// 2 - осадки
// 3 - давление
// 4 - температура
// 5 - влажность
// 6 - ветер
// 7 - комфорт
//формируем массив $w[i][j] где i- показатель, j-время
for($i=0; $i<7; $i++) {
$r=split("</td>",$rows[$i]);
for($j=0; $j<count($r); $j++) {
$r[$j]=preg_replace("/^\\s+/","",$r[$j]);
switch($i) {
case 1:
case 2:
$r[$j] = preg_replace("/.+title=\"(.*)\".*/","$1",$r[$j]);
break;
case 3:
case 4:
$r[$j]=preg_replace("/\\s/","..",$r[$j]);
break;
}
$w[$i][$j] = $r[$j];
} // for j
} // for i
// пишем в кэш, чтобы зря не дергать gismeteo
$fp=fopen(WEATHER_CACHE_FILE,"w");
flock($fp,LOCK_EX);
fputs($fp,serialize($w));
flock($fp,LOCK_UN);
fclose($fp);
}
// Теперь рисуем WAP-страницу
// ф-ция win2utf просто переводит из кодировки cp1251 в utf-8.
for($j=1; $j<12; $j++) {
print "<p>";
print "<b>".win2utf($w[0][$j])."</b><br/>\n"; // время
print win2utf($w[1][$j].", ".$w[2][$j])."<br/>\n"; // осадки, облачность
print "t ".win2utf($w[4][$j]); // t
print win2utf(", давл. ".$w[3][$j]."мм");
print win2utf(", ветер ".$w[6][$j]."м/с");
print win2utf(", влаж. ".$w[5][$j]."%");
print "</p>\n";
}
print "</card></wml>\n";
?>
Автор: Aleksanders
Дата сообщения: 21.04.2005 12:26
Как собрать из исходников вместе mysql php и apache чтобы php работал как загружаемый модуль apache?
Автор: Thorin
Дата сообщения: 28.04.2005 14:21
есть такой мод для движка PunBB, нужно подправить, чтобы авторефреш был и чтобы можно кликом на ник автоматом вставлять его в строку ввода
[more]
Код: <?php

$pun_root = './';

if (!defined('PUN_ROOT')) define('PUN_ROOT','./');

require $pun_root.'include/common.php';

if ($pun_user['g_read_board'] == '0')
message($lang_common['No view']);

//Hide ChatBox from Guest
if ($pun_user['is_guest'])
message($lang_common['No permission']);

$page_title=pun_htmlspecialchars($pun_config['o_board_title']).' / ChatBox';
require $pun_root.'lang/'.$pun_user['language'].'/'.'chatbox.php';

define('PUN_ALLOW_INDEX', 1);
require PUN_ROOT.'header.php';

###################### Configuration of ChatBox ########################

$hide_smilies = 0;// 1 = hide smilies, 0 = show smilies
$msg_max = 50;// max. messages in chatbox
$file_name = 'chatbox.txt'; // file where there are all messages
$box_height = '200px';// height of chatbox

########################################################################

require PUN_ROOT.'include/parser.php';

$tpl_room = file_get_contents(PUN_ROOT.$file_name);

$messages = explode("</MESSAGE>", $tpl_room);

$nb_messages = count($messages);

$room = '';
$room_txt = '';
$anti_flood = 0;

if (isset($_GET['action']) && isset($_POST['message']))
$room_tmp_flood = '<MESSAGE><ID>'.$pun_user['id'].'</ID><TEXT>'.$_POST['message'].'</TEXT>';
else
$room_tmp_flood = '<no_post>';


for($i=0;$i<$nb_messages - 1;$i++)
{
$grab = ereg("<ID>(.*)</ID>", $messages[$i], $mess_id);
$grab = ereg("<PSEUDO>(.*)</PSEUDO>", $messages[$i], $mess_pseudo);
$grab = ereg("<DATE>(.*)</DATE>", $messages[$i], $mess_date);
$grab = ereg("<TEXT>(.*)</TEXT>", $messages[$i], $mess_text);

$room .= '[<a href="profile.php?id='.$mess_id[1].'"><strong>'.pun_htmlspecialchars($mess_pseudo[1]).'</strong></a> - '.format_time($mess_date[1])."]".parse_message($mess_text[1], $hide_smilies)."\n".'<br />'."\n";
if ($i+1 < $msg_max)
{

$room_txt_flood = '<MESSAGE><ID>'.$mess_id[1].'</ID><TEXT>'.$mess_text[1].'</TEXT>';

if ($room_tmp_flood == $room_txt_flood)
$anti_flood = 1;

$room_txt .= '<MESSAGE>'."\r".' <ID>'.$mess_id[1].'</ID>'."\r".' <PSEUDO>'.$mess_pseudo[1].'</PSEUDO>'."\r".' <DATE>'.$mess_date[1].'</DATE>'."\r".' <TEXT>'.$mess_text[1].'</TEXT>'."\r".'</MESSAGE>'."\n\n";

}
}

if (isset($_GET['action']) && isset($_POST['message']))
{
if ($anti_flood == 0 && $_POST['message'] != '')
{
$fp = fopen(PUN_ROOT.$file_name, "w");
if ($fp)
{
$room_txt = '<MESSAGE>'."\r".' <ID>'.$pun_user['id'].'</ID>'."\r".' <PSEUDO>'.$pun_user['username'].'</PSEUDO>'."\r".' <DATE>'.time().'</DATE>'."\r".' <TEXT>'.$_POST['message'].'</TEXT>'."\r".'</MESSAGE>'."\n\n".$room_txt;
$r = fwrite($fp, $room_txt);
}
fclose($fp);
$room = '[<a href="profile.php?id='.$pun_user['id'].'"><strong>'.pun_htmlspecialchars($pun_user['username']).'</strong></a> - '.format_time(time())."]".parse_message($_POST['message'], $hide_smilies)."\n".'<br />'."\n".$room;
}
elseif ($anti_flood == 1)
{
$room = '<strong><font color=red>'.$lang_chatbox['Anti flood'].'</font></strong>'."\n".'<br />'."\n".'<br />'."\n".$room;
}
else
{
$room = '<strong><font color=red>'.$lang_chatbox['Anti blank'].'</font></strong>'."\n".'<br />'."\n".'<br />'."\n".$room;
}
}
?>

<script type="text/javascript">
<!--
function refreshRoom()
{
window.location="<?php echo $pun_root.'chatbox.php' ?>";
}
// -->
</script>

<div class="block">
<h2><span><?php echo $lang_chatbox['Chatbox']; ?></span></h2>
<div class="box">
<div class="inbox">
<div class="inform">
<fieldset>
<legend><?php echo $lang_chatbox['Messages']; ?></legend>
<div style="padding:5px;margin:0;overflow:auto;height:<?php echo $box_height; ?>;">
<?php echo $room; ?>
</div>
</fieldset>
</div>
<div class="inform">
<fieldset>
<form method="post" name="form_room" action="?action=send">
<input type="text" name="message" size="125" maxlength="255" /> <input type="submit" name="send" value="<?php echo $lang_chatbox['Btn Send']; ?>" /> <input type="button" value="<?php echo $lang_chatbox['Btn Refresh']; ?>" onClick="refreshRoom()"></a>
</form>
</fieldset>
</div>
</div>
</div>
</div>

<?php

$footer_style = 'index';
require PUN_ROOT.'footer.php';
Автор: BarmaLINI
Дата сообщения: 29.04.2005 13:00
вы хоть читаете тему ???
Автор: dimedime
Дата сообщения: 05.05.2005 17:40

Цитата:
Начну:

Код:

function err_handler ($errno, $errstr, $errfile, $errline) {
global $display_errors;
if(($errno != E_NOTICE && $errno != E_WARNING) && $display_errors){
echo '';
}
}
$error_flags = E_ALL & ~E_NOTICE;
@error_reporting($error_flags);
@ini_set ('error_reporting', $error_flags);
$old_error_handler = set_error_handler("err_handler");



Бывает полезным, убивает все нотайсы, выводы ошибок и прочее.


Честно говоря очень смущает целесообразность использования
@error_reporting($error_flags);
@ini_set ('error_reporting', $error_flags);
одновременно, да еще и с
set_error_handler

а вобще-то технология удобная я сам пользуюсь для отладки


Код:
function ViewErrorHandler($errorno, $errormsg, $filename, $linenum)
{
print "<pre>\n";
print "Error #$errorno: $errormsg\n";
print stack(2);
print "</pre>\n";
die();
}

function stack($skip = 1)
{
$stack = array();
foreach(debug_backtrace() as $call)
if (0 > --$skip) $stack[] = $call['function'].':'.$call['line'].$call['file']."\n";
return join($stack);
}

set_error_handler('ViewErrorHandler');

Страницы: 12345678910

Предыдущая тема: Perl: Полезные решения


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.