백엔드 개발 PHP 튜토리얼 3.从实例开始_PHP教程

3.从实例开始_PHP教程

Jul 21, 2016 pm 04:08 PM
php 그리고 사용 관행 도구 시작 우리를 특징 ~의 소프트웨어


3 PHP实践 


PHP的许多特点与其他软件或者工具有关。利用迄今为止我们所学到的PHP知识,我们可以试着建立一个简单交互的网站。利用这一过程我们又可以学到不少东西。好吧,我们现在开始专注于一个典型个人网站的建设。



3.1 计划一个站点

一般一个个人站点包括一个欢迎页面、一个留言本页面、一个书签链接页面、一个计数器、联系信息,甚至还有照片集和一些音乐文件等等。让我们从一个标题页面、一个联系信息页面和一个简历页面开始。我们同样需要标准的通用的页面头部和底部。



标题页面--front.html





这里我们有一个非常简单的html文件:





<br><br>我的个人主页--欢迎<br><br>







我的个人主页





欢迎








欢迎来我的寒舍,虽然这里现在暂时还没有什么。





不过我希望马上就可以多起来。








 

Copyright ? 我自己,1999

 










联系信息页面--count.html



同样我们又有了一个简单页面:





<br><br>我的个人主页--联系信息<br><br>







我的个人主页





联系信息








你可以通过1-800-PHP-INFO联系我








 

Copyright ? 我自己,1999

 












3.2 HTML到PHP



从上面你可以看出,每个页面有相同的头部和底部。像上面那样每个页面都写入相同的信息在工作量少的时候还可以,但是想象一下当有100多页面且你需要全部更改其头部或底部时你要花费多大精力?一页一页的手工更改是一件多么冗长无趣的事情啊!所以我们应该为这些页面编写PHP的头部和底部文件,之后我们只要在每个HTML页面中引用它们就行了。我们将把这些include文件放在一个叫include的子目录下。下面我们就把这些站点的通用内容写进文件中。



全站通用变量设定:common.inc



// 全站通用变量

$MyEmail = "phptalk@tnc.org";

$MyEmailLink = "$MyEmail";

$MyName = "PHP Talk";

$MySiteName = $MyName."'s Home Page";

?>



通用页面头部:header.inc



// 定义通用页面头部

?>





<br><br> echo "$MySiteName - $title"; ?><br><br>







 echo "$MySiteName"; ?>





 echo "$title"; ?>








通用页面底部:footer.inc



// 通用页面底部

?>






 

Copyright ? by 

 echo "$MyName ($MyEmailLink)"; ?>

, 1999

 










新的页面front.php3:



include("include/common.inc");

$title = "Welcome";

include("include/header.inc");

?>



欢迎来我的寒舍,虽然这里现在暂时还没有什么。





不过我希望马上就可以多起来。





include("include/footer.inc");

?>



新的cont.php3:



include("include/common.inc");

$title = "Contact Information";

include("include/header.inc");

?>



你可以通过1-800-PHP-INFO联系我





include("include/footer.inc");

?>



现在你就可以猜出这样安排的好处了。如果你想改动页面的头部或者底部,你只需要改动相应的文件就可以了。如果你要修改你的e-mail地址甚至你的名字,只要修改common.inc文件就行了。另外值得注意的是你可以把具有任何文件名或者文件扩展名的文件包含进你的文件中,你甚至可以包含其他站点上的文件。



3.3 计数器



让我们在首页上加上一个计数器。这个例子已经被讲过多次了,但是还是有利于演示怎样读写文件以及创建自己的函数。counter.inc包含以下代码:



/*


 一个简单的计数器

*/

function get_hitcount($counter_file)

{

/* 将计数器归零

这样如果计数器还未被使用,初始值将是1

你当然也可以把初始值设成20000来骗人咯

*/

$count=0;

// 如果存放计数器文件已经存在,读取其中的内容

if ( file_exists($counter_file) ) 

{

$fp=fopen($counter_file,"r");

// 我们只取了前20位,希望你的站点不要太受欢迎啊

$count=0+fgets($fp,20);

// 由于函数fgets()返回字符串,我们可以通过加0的方法将其自动转换为整数

fclose($fp);

// 对文件操作完毕

}

// 增加一次计数值

$count++;

// 将新的计数值写入文件

$fp=fopen($counter_file,"w");

fputs($fp,$count);

fclose($fp);

# 返回计数值

return ($count);

}

?>

然后我们更改front.php3文件以显示这个计数器:



include("include/counter.inc");

// 我把计数值放在文件counter.txt中,读出并输出

printf ("
%06d
 
 
\n",

get_hitcount("counter.txt"));

include("include/footer.inc");

?>

看看我们的新front.php3



3.4 反馈表单



让我们再添加一个反馈表单以便你的浏览者填写并e-mail给你。举例来说我们用一种很简单的方法实现它,我们只需要两个页面:一个为浏览者提供输入表单;一个获得表单数据并处理、mail给你。



PHP中获取表单数据是很简单的。当一个表单被发送后,表单中所包含的各个元素被赋上了相应的值,而这样就可以像引用一般变量一样使用了。









在process_form.php3中,变量$mytext就被赋予了输入的值--非常简单!同样的,你可以从列表框、多选框、单选框、按钮等表单元素中取得变量值。你唯一要做的就是为表单中的每一个元素取名以便将来可以引用。



根据这个方法,我们可以生成一个简单的包含三个元素的表单:姓名、e-mail地址和留言。当浏览者发送表单后,处理该表单的PHP页面(sendfdbk.php3)读取数据,检查姓名是否为空,最后将数据mail给你。



表单:form.php3



include("include/common.inc");

$title = "Feedback";

include("include/header.inc");

?>





SIZE="20" MAXLENGTH="30">

value="Your Email" NAME="email">

















include("include/footer.inc");

?>



处理表单:sendfdbk.php3



include("include/common.inc");

$title = "Feedback";

include("include/header.inc");

if ( $name == "" ) 

{

// 现在我很讨厌匿名的留言!

echo "Duh ? How come you are anonymous?";



elseif ($name == "Your name") 

{

// 这个浏览者真是不想透露姓名啊!

echo "Hello ? Your name is supposed to be replaced with

your actual name!";



else 

{

// 输出一段礼貌的感谢语

echo "

Hello, $name.




Thank you for your feedback. It is greatly appreciated.




Thanking you




$MyName 


$MyEmailLink

";

// 最后mail出去

mail($MyEmail, "Feedback.","

Name : $name

E-mail : $email

Comment : $comment 

");

}

include("include/footer.inc");

?>



3.5 简单的站内搜索引擎



PHP可以调用外部程序。在Unix环境下我们可以利用程序grep实现一个简单的搜索引擎。我们可以做的稍微复杂一些:使用一个页面既输出一个表单供用户输入搜索字串又输出查询结果。



include("include/common.inc");

$title = "Search";

include("include/header.inc");

?>



" METHOD="POST">

echo "$searchstr"; ?>"

SIZE="20" MAXLENGTH="30">









if ( ! empty($searchstr) ) 

{

// empty()用来检查查询字串是否为空

// 如果不为空,调用grep查询

echo "
\n";

// 调用grep对所有文件进行大小写非敏感模式的查询

$cmdstr = "grep -i $searchstr *";

$fp = popen( $cmdstr, "r" ); // 执行命令并输出管道

$myresult = array(); // 存储查询结果

while( $buffer = fgetss ($fp, 4096)) 

{

// grep返回这样格式: 文件名:匹配字串出现行数

// 因此我们利用函数split()分离处理数据

list($fname, $fline) = split(":",$buffer, 2);

// 我们只输出第一次匹配的结果

if ( !defined($myresult[$fname]))

$myresult[$fname] = $fline;

}

// 现在我们将结果存储在数组中,下面就可以处理并输出了 

if ( count($myresult) )

{

echo "
    \n";

    while(list($fname,$fline) = each($myresult))

    echo "


  1. $fname : $fline 
  2. \n";

    echo "
\n";



else 

{

// 如果没有查询结果

echo "Sorry. Search on $searchstr

returned no results.
\n";

}

pclose($fp);

}

?>



include("include/footer.inc");

?>





注释:



PHP_SELF是PHP内建的变量。包含当前文件名。 

fgets()按行读取文件,最多4096(指定)字符长度。 

fgetss()与fgets()相似,只是解析输出的HTML标记。 

split()有一个参数是2,因为我们只需要把输出分成两部分。另外需要省略":"。 

each()是一个数组操作函数,用来更方便的遍历整个数组。 

popen()、pclose()与fopen()、fclose()的功能很相似,只是增加了管道处理。 

请注意以上的代码并不是实现一个搜索引擎的好办法。这只是有助于我们更好学习PHP而举出的一个例子而已。理想的情况是你应该建立一个包含关键字的数据库然后进行搜索。

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/314675.htmlTechArticle3PHP实践 PHP的许多特点与其他软件或者工具有关。利用迄今为止我们所学到的PHP知识,我们可以试着建立一个简单交互的网站。利用这一过...
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 채팅 명령 및 사용 방법
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

PHP 및 Python : 두 가지 인기있는 프로그래밍 언어를 비교합니다 PHP 및 Python : 두 가지 인기있는 프로그래밍 언어를 비교합니다 Apr 14, 2025 am 12:13 AM

PHP와 Python은 각각 고유 한 장점이 있으며 프로젝트 요구 사항에 따라 선택합니다. 1.PHP는 웹 개발, 특히 웹 사이트의 빠른 개발 및 유지 보수에 적합합니다. 2. Python은 간결한 구문을 가진 데이터 과학, 기계 학습 및 인공 지능에 적합하며 초보자에게 적합합니다.

PHP의 지속적인 관련성 : 여전히 살아 있습니까? PHP의 지속적인 관련성 : 여전히 살아 있습니까? Apr 14, 2025 am 12:12 AM

PHP는 여전히 역동적이며 현대 프로그래밍 분야에서 여전히 중요한 위치를 차지하고 있습니다. 1) PHP의 단순성과 강력한 커뮤니티 지원으로 인해 웹 개발에 널리 사용됩니다. 2) 유연성과 안정성은 웹 양식, 데이터베이스 작업 및 파일 처리를 처리하는 데 탁월합니다. 3) PHP는 지속적으로 발전하고 최적화하며 초보자 및 숙련 된 개발자에게 적합합니다.

Nginx 로그를 사용하여 웹 사이트 속도를 향상시키는 방법 Nginx 로그를 사용하여 웹 사이트 속도를 향상시키는 방법 Apr 13, 2025 am 09:09 AM

웹 사이트 성능 최적화는 액세스 로그의 심층 분석과 분리 할 수 ​​없습니다. NGINX 로그는 웹 사이트를 방문하는 사용자의 자세한 정보를 기록합니다. 이 데이터를 영리하게 사용하면 웹 사이트의 속도가 효과적으로 향상 될 수 있습니다. 이 기사는 NGINX 로그를 기반으로 여러 웹 사이트 성능 최적화 방법을 소개합니다. 1. 사용자 행동 분석 및 최적화. NGINX 로그를 분석하여 사용자 동작에 대한 깊은 이해를 얻고이를 기반으로 목표 최적화를 수행 할 수 있습니다. 고주파 액세스 IP 식별 : 액세스 빈도가 가장 높은 IP 주소를 찾고, 대역폭 증가 또는 특정 콘텐츠의 응답 속도 향상과 같은 이러한 IP 주소의 서버 리소스 구성을 최적화합니다. 상태 코드 분석 : 다른 HTTP 상태 코드 (예 : 404 오류)의 빈도를 분석하고 웹 사이트 탐색 또는 컨텐츠 관리의 문제를 찾고 진행하십시오.

Debian이 Hadoop 데이터 처리 속도를 향상시키는 방법 Debian이 Hadoop 데이터 처리 속도를 향상시키는 방법 Apr 13, 2025 am 11:54 AM

이 기사에서는 데비안 시스템에서 Hadoop 데이터 처리 효율성을 향상시키는 방법에 대해 설명합니다. 최적화 전략에는 하드웨어 업그레이드, 운영 체제 매개 변수 조정, Hadoop 구성 수정 및 효율적인 알고리즘 및 도구 사용이 포함됩니다. 1. 하드웨어 리소스 강화는 모든 노드에 일관된 하드웨어 구성, 특히 CPU, 메모리 및 네트워크 장비 성능에주의를 기울일 수 있도록합니다. 전반적인 처리 속도를 향상시키기 위해서는 고성능 하드웨어 구성 요소를 선택하는 것이 필수적입니다. 2. 운영 체제 조정 파일 설명 자 및 네트워크 연결 : /etc/security/limits.conf 파일을 수정하여 파일 설명자의 상한을 늘리고 동시에 시스템에 의해 열 수 있습니다. JVM 매개 변수 조정 : Hadoop-env.sh 파일에서 조정

PHP 실행 : 실제 예제 및 응용 프로그램 PHP 실행 : 실제 예제 및 응용 프로그램 Apr 14, 2025 am 12:19 AM

PHP는 전자 상거래, 컨텐츠 관리 시스템 및 API 개발에 널리 사용됩니다. 1) 전자 상거래 : 쇼핑 카트 기능 및 지불 처리에 사용됩니다. 2) 컨텐츠 관리 시스템 : 동적 컨텐츠 생성 및 사용자 관리에 사용됩니다. 3) API 개발 : 편안한 API 개발 및 API 보안에 사용됩니다. 성능 최적화 및 모범 사례를 통해 PHP 애플리케이션의 효율성과 유지 보수 성이 향상됩니다.

Debian Readdir가 다른 도구와 통합하는 방법 Debian Readdir가 다른 도구와 통합하는 방법 Apr 13, 2025 am 09:42 AM

데비안 시스템의 readdir 함수는 디렉토리 컨텐츠를 읽는 데 사용되는 시스템 호출이며 종종 C 프로그래밍에 사용됩니다. 이 기사에서는 ReadDir를 다른 도구와 통합하여 기능을 향상시키는 방법을 설명합니다. 방법 1 : C 언어 프로그램을 파이프 라인과 결합하고 먼저 C 프로그램을 작성하여 readDir 함수를 호출하고 결과를 출력하십시오.#포함#포함#포함#포함#includinTmain (intargc, char*argv []) {dir*dir; structdirent*entry; if (argc! = 2) {

데비안을 오류하는 방법은 중간 중간의 공격을 방해합니다 데비안을 오류하는 방법은 중간 중간의 공격을 방해합니다 Apr 13, 2025 am 10:30 AM

Debian Systems에서 OpenSSL은 암호화, 암호 해독 및 인증서 관리를위한 중요한 라이브러리입니다. MITM (Man-in-the-Middle Attack)을 방지하려면 다음 측정을 수행 할 수 있습니다. HTTPS 사용 : 모든 네트워크 요청이 HTTP 대신 HTTPS 프로토콜을 사용하도록하십시오. HTTPS는 TLS (Transport Layer Security Protocol)를 사용하여 통신 데이터를 암호화하여 전송 중에 데이터가 도난 당하거나 변조되지 않도록합니다. 서버 인증서 확인 : 클라이언트의 서버 인증서를 수동으로 확인하여 신뢰할 수 있는지 확인하십시오. 서버는 대의원 메소드를 통해 수동으로 확인할 수 있습니다.

데비안 메일 서버 SSL 인증서 설치 방법 데비안 메일 서버 SSL 인증서 설치 방법 Apr 13, 2025 am 11:39 AM

Debian Mail 서버에 SSL 인증서를 설치하는 단계는 다음과 같습니다. 1. OpenSSL 툴킷을 먼저 설치하십시오. 먼저 OpenSSL 툴킷이 이미 시스템에 설치되어 있는지 확인하십시오. 설치되지 않은 경우 다음 명령을 사용하여 설치할 수 있습니다. 개인 키 및 인증서 요청 생성 다음에 다음, OpenSSL을 사용하여 2048 비트 RSA 개인 키 및 인증서 요청 (CSR)을 생성합니다.

See all articles