当前位置:  编程技术>php
本页文章导读:
    ▪用PHP生成自己的LOG文件       如果你的服务器不容许你读他的LOG文件,那你只好停下来分析你的访问者?做你自己的LOG文件吧!你仅需做的事情是用PHP计算实际的点击次数,没有错误,没有象'304 Not Mo.........
    ▪VFP与其他应用程序的集成       作为一个数据库软件,Visual FoxPro 5.0不仅具有管理它本身数据的功能,还可以与其他应用程序集成,获取其他应用程序提供的数据。另外,通过Visual FoxPro 5.0,还可以将表.........
    ▪PHP中在数据库中保存Checkbox数据(1)       介绍 checkbox是一个非常有用的页面表单项,在让用户进行多重选择的情况下,它甚至可以允许用户选择全部项目或是一个都不选。但是,尽管这是一个非常优秀的表单元.........

[1]用PHP生成自己的LOG文件
    来源: 互联网  发布时间: 2013-11-30

如果你的服务器不容许你读他的LOG文件,那你只好停下来分析你的访问者?做你自己的LOG文件吧!
你仅需做的事情是用PHP计算实际的点击次数,没有错误,没有象'304 Not Modified' 和 'Internal Server Error' 一样的错误。你的代码将生成自己的LOG文件。


<?php

/* 用户定义变量 */
$logfile = "clf.log"; /*LOG文件写到那里 */
$timezone = "+0100"; /* Timezone correction */
$lookup_size = true; /* 设置文件的权限 */
$document_root = "/usr/local/apache/share/htdocs";

/* 他可能或不可能对相同的客户端记数
* 一定要对$document_root 这个变量进行设置才可以工作
*/

function write_to_log($str) {
if($fd = @fopen($GLOBALS[ "logfile"], "a")) {
fputs($fd, $str);
fclose($fd);
}
}

function get_var($name,$default) {
if($var = getenv($name)) {
return $var;
} else {
return $default;
}
}

if($remote_host = get_var( "REMOTE_HOST", false)) {
$remote_host = get_var( "REMOTE_ADDR", "-");
}
$remote_user = get_var( "REMOTE_USER", "-");
$remote_ident = get_var( "REMOTE_IDENT", "-");
$server_port = get_var( "SERVER_PORT", 80);
if($server_port!=80) {
$server_port = ":" . $server_port;
} else {
$server_port = "";
}
$server_name = get_var( "SERVER_NAME", "-");
$request_method = get_var( "REQUEST_METHOD", "GET");
$request_uri = get_var( "REQUEST_URI", "");
$user_agent = get_var( "HTTP_USER_AGENT", "");
if($lookup_size == true && $document_root) {
$filename = ereg_replace( "\?.*", "", $request_uri);
$filename = "$document_root$filename";
if(!$size = filesize($filename)) {
$size = 0;
}
} else {
$size = 0;
}

$date = gmdate( "d/M/Y:H:I:s");
$log = "$remote_host $remote_ident $remote_user [$date $timezone] \"".
"$request_method http://$server_name$server_port$request_uri\" 200 $size\n";

write_to_log($log);

?>

    
[2]VFP与其他应用程序的集成
    来源: 互联网  发布时间: 2013-11-30

作为一个数据库软件,Visual FoxPro 5.0不仅具有管理它本身数据的功能,还可以与其他应用程序集成,获取其他应用程序提供的数据。另外,通过Visual FoxPro 5.0,还可以将表或视图中的数据与Microsoft Word文档合并,产生邮件合并文档或者通过通用型字段嵌入或链接其他OLE对象。
1.导入数据
所谓导入数据,就是指从另一个应用程序复制数据,然后在Visual FoxPro 5.0中创建一个新表,并用源文件的数据填充该表。在Visual FoxPro 5.0中,可以导入多种文件类型的数据。
如果想使用FoxPro或dBASE文件中的表,可以直接打开并使用它们而不必导入。Visual FoxPro 5.0将询问你是否把表转换为Visual FoxPro 5.0格式。一旦将表从以前的版本转换成最新版本,就不能再用以前的版本打开。在导入数据时,既可以使用“导入向导”,也可以使用“导入”对话框。
2.把数据追加到已有的表
在执行导入操作时,除了将数据导入到一个新表以外,你还可以将它导入到一个已有的文件中。在选择将数据导入到一个已有的文件时,Visual FoxPro 5.0将把数据追加到已有文件的后面。
除了使用“导入向导”将要导入的数据追加到已有的文件以外,还可以使用“追加来源”对话框追加数据。在使用“追加来源”对话框追加数据时,首先应从“浏览”窗口中打开要追加记录的表。默认情况下,Visual FoxPro 5.0将源文件中所有记录和字段都追加到当前打开的表中,但是使用“追加来源”选项,可以指定要追加哪些字段或记录。
3.导出数据
在Visual FoxPro 5.0中,不仅可以从其他应用程序中导入或追加数据,而且还可以把Visual FoxPro 5.0表中存储的数据导出到另一种格式的文件中,供其他应用程序使用。所谓导出,就是指把数据从Visual FoxPro 5.0表复制到其他应用程序所用的文件中。在Visual FoxPro 5.0数据库中,可以将数据存储为多种文件类型。
在Visual FoxPro 5.0中,可以使用“导出”对话框导出数据。在导出数据时,既可以导出指定表中的全部字段和记录,也可以只导出其中的一部分。用户可以定义要导出哪些字段和记录。
4.创建邮件合并文件
我们知道,在Word中使用“工具”菜单中的“邮件合并”功能,可以将标准文本与单一信息的列表链接成新的文档,包括套用信函、带地址的信封、电子邮件和传真文档。在Visual FoxPro 5.0中,利用“邮件合并向导”同样也可以完成上述功能。
“邮件合并向导”实际上是将Visual FoxPro 5.0和Microsoft Word两种应用程序集成在一起,使得Microsoft Word能够共享Visual FoxPro 5.0表或视图中包含的数据,利用这些数据打印一批相同格式的文档。在日常生活中,这种方法是很有用的。
5.嵌入或链接OLE对象
上述几种方法都只能使Visual FoxPro 5.0静态地共享其他应用程序生成的数据。为了能够动态地共享其他应用程序生成的数据,Visual FoxPro 5.0还提供了嵌入或链接数据的方法。嵌入和链接数据的方法是通过通用型字段实现的,用户可以通过通用型字段在表或表单中嵌入或链接其他应用程序的数据,同时仍用那些应用程序维护这些数据。在Visual FoxPro 5.0中,外部数据一般都是嵌入或链接在表或表单中的。

    
[3]PHP中在数据库中保存Checkbox数据(1)
    来源: 互联网  发布时间: 2013-11-30

介绍

checkbox是一个非常有用的页面表单项,在让用户进行多重选择的情况下,它甚至可以允许用户选择全部项目或是一个都不选。但是,尽管这是一个非常优秀的表单元素,但在我们的工作中,在如何正确地保存选择项这方面总存在一些易混淆的情况发生。本文将描述在遵循好的数据库设计原则的方法下,如何把checkbox选择项正确地保存在数据库中。

要求

本文将阐述如何把选择项正确地保存在用户数据库中的方法。尽管这里包括了有用的PHP代码,但我将从数据库设计的观点来表达它们,所以,你可以很方便地使用任何一个数据库和服务器端脚本语言来实现。我只是想提供一个如何做的方法,让你能应用于你自己的站点中。如果你想运行这里的源码,你需要安装php、mysql和网络服务器。

例1:招聘站点

假如你被要求做一个招聘类的网站,允许求职的软件开发人员填写他们的技能,让雇主能访问这个站点并根据求职者的技能找到合适的员工。你也知道,一个开发人员拥有的技能会多于一个,因此你决定这样设计你的站点。

每一个求职者将允许访问本站,注册一个用户,并且输入他的技能,Checkbox就派上用场了,你可能想作这样的一页:

__ PHP __ MySQL __ Zope
__ Perl __ Javascript __ JSP

[提交]

每一个求职都可以选择他所拥有的技能。显然对于不同人来说这选择项是不同的。一个人可能会是PHP和Mysql,其它人可能只是JSP。你将如何保存这些选择呢?一个很自然的想法是针对每个选项建一个字段,这样开始可以正常工作。但是随后你可能会发现,当你想扩展或调整时,麻烦就来了,你可能不得不修改你的表结构。
好的方法应是这样的:

你应有一个用户表包含用户的注册信息,如用户名、密码和其它一些你需要的什么内容。假如你直接使用本文后面给出的源码,你要建一个简单的表如下:

id username
1 User1
2 User2
3 User3

我们先建一个表 "const_skills" 用如下的 SQL 语句:

SQL> CREATE TABLE const_skills (
id int not null primary key,
value varchar(20) );

现在我们加入技能:

SQL> INSERT INTO const_skills(id, value) VALUES (1, "PHP");
SQL> INSERT INTO const_skills(id, value) VALUES (2, "MySQL");
SQL> INSERT INTO const_skills(id, value) VALUES (3, "Zope");
SQL> INSERT INTO const_skills(id, value) VALUES (4, "Perl");
SQL> INSERT INTO const_skills(id, value) VALUES (5, "Javascript");
SQL> INSERT INTO const_skills(id, value) VALUES (6, "JSP");

你的 const_skills 现在应是这样的:

id value
1 PHP
2 MySQL
3 Zope
4 Perl
5 Javascript
6 JSP

这个表只是让用户可以选择相应的技能,现在,再建一个表 lookup_skills 用如下的SQL:

SQL> CREATE TABLE lookup_skills (
id int not null auto_increment primary key,
uid int,
skill_id int );

这个表lookup_skills的目的是提供从用户表到开发技能表之间的一个映射关系。换句话说,它让我们保存开发者和他们有的技能,如,当求职者完成选择点击提交时,我们将填写这个表用checkbox中被选定的那些值。对于每一个选上的技能,我们在这个表中加一条记录,记下用户id及所选项的id。(想必大家都清楚了吧。我译到这,嘿嘿…)

在我们看这个插入记录的代码之前,我们先设计一下这个页面,应有的内容有一个表单,我们可以查询的数据库并且取checkbox标签从const_skills表中,建这个checkbox表单项。

代码如下:

< ?php

/* insert code to connect to your database here */

/* get the checkbox labels */
$skills = get_checkbox_labels("const_skills");

/* create the html code for a formatted set of
checkboxes */
$html_skills = make_checkbox_html($skills, 3, 400, "skills[]");

? >


< html >
< body >
< br >
< form name="skills" method="POST" action="/blog_article/insertskills.html" >
Check off your web development skills:
< ? echo "$html_skills"; ? >
< br >
< input type="submit" value="Submit" >
< /form >
< /body >
< /html >

< ?php

function get_checkbox_labels($table_name) {

/* make an array */
$arr = array();

/* construct the query */
$query = "SELECT * FROM $table_name";

/* execute the query */
$qid = mysql_query($query);

/* each row in the result set will be packaged as
an object and put in an array */
while($row= mysql_fetch_object($qid)) {
array_push($arr, $row);
}

return $arr;
}

/* Prints a nicely formatted table of checkbox choices.

$arr is an array of objects that contain the choices
$num is the number of elements wide we display in the table
$width is the value of the width parameter to the table tag
$name is the name of the checkbox array
$checked is an array of element names that should be checked
*/


function make_checkbox_html($arr, $num, $width, $name, $checked) {

/* create string to hold out html */
$str = "";

/* make it */
$str .= "< table width="$width" border="0" >n";
$str .= "< tr >n";

/* determine if we will have to close add
a closing tr tag at the end of our table */
if (count($arr) % $num != 0) {
$closingTR = true;
}

$i = 1;
if (isset($checked)) {
/* if we passed in an array of the checkboxes we want
to be displayed as checked */
foreach ($arr as $ele) {
$str .= "< td >< input type="checkbox" name="$name" value="$ele- >id"";
foreach ($checked as $entry) {
if ($entry == $ele- >value) {
$str .= "checked";
continue;
}
}
$str .= " >";
$str .= "$ele- >value";

if ($i % $num == 0) {
$str .= "< /tr >n< tr >";
} else {
$str .= "< /td >n";
}
$i++;
}

} else {
/* we just want to print the checkboxes. none will have checks */
foreach ($arr as $ele) {
$str .= "< td >< input type="checkbox" name="$name" value="$ele- >id" >";
$str .= "$ele- >value";

if ($i % $num == 0) {
$str .= "< /tr >n< tr >";
} else {
$str .= "< /td >n";
}
$i++;
}

}

/* tack on a closing tr tag if necessary */
if ($closingTR == true) {
$str .= "< /tr >< /table >n";
} else {
$str .= "< /table >n";
}

return $str;
}


? >

    
最新技术文章:
▪PHP函数microtime()时间戳的定义与用法
▪PHP单一入口之apache配置内容
▪PHP数组排序方法总结(收藏)
▪php数组排序方法大全(脚本学堂整理奉献)
▪php数组排序的几个函数(附实例)
▪php二维数组排序(实例)
▪php根据键值对二维数组排序的小例子
java/j2ee iis7站长之家
▪php数组长度的获取方法(三个实例)
▪php获取数组长度的方法举例
▪判断php数组维度(php数组长度)的方法
▪php获取图片的exif信息的示例代码
▪PHP 数组key长度对性能的影响实例分析
▪php函数指定默认值的方法示例
▪php提交表单到当前页面、提交表单后页面重定...
▪php四舍五入的三种实现方法
▪php获得数组长度(元素个数)的方法
▪php日期函数的简单示例代码
▪php数学函数的简单示例代码
▪php字符串函数的简单示例代码
▪php文件下载代码(多浏览器兼容、支持中文文...
▪php实现文件下载、支持中文文件名的示例代码...
▪php文件下载(防止中文文件名乱码)的示例代码
▪解决PHP文件下载时中文文件名乱码的问题
▪php数组去重(一维、二维数组去重)的简单示例
▪php小数点后取两位的三种实现方法
▪php Redis 队列服务的简单示例
▪PHP导出excel时数字变为科学计数的解决方法
▪PHP数组根据值获取Key的简单示例
▪php数组去重的函数代码示例
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3