PHP初学者问题

1, 如何对一个字符串进行转码?
使用php的iconv函数,签名为:
$str=iconv(fromEncode,toEncode,str);
例如:
$str="php字符串转码";
$str=iconv("utf-8","gbk",$str);//将字符串从utf-8格式转换为gbk格式
转码是很重要的一个问题,例如目前许多博客提供的rss都是utf-8返回的,因此需要通过转化才能正确显示。

2,如何读取一个网页的HTML内容?
PHP中文件的概念和Java中文件流的概念是类似的,许多文件读取的函数,其接受的输入流不仅仅是本地文件系统,也可以是网络文件,下面介绍其中的一种方式:
function getRssContent($url){
        $handle = fopen ($url, "rb");
        $contents = "";
        $count=0;
        do {
            $data = fread($handle, 1000000);
            $count++;
            if (strlen($data) == 0) {
                 break;
            }
         $contents .= $data;
         } while(true);
          fclose ($handle);       
        return $contents;
}

3,PHP中如何操作mysql数据库?
为了方便初学者能够上手mysql的操作,我介绍一些常用的操作:
1)数据库连接与关闭
$dbhost = "";  
$dbuser = "";  
$dbpw = "";   
$dbname = "";
$link = mysql_connect($dbhost, $dbuser, $dbpw) or die("Could not connect: ".mysql_error());
mysql_select_db($dbname);
...//此处是对数据库具体的操作,后面的例子不再写数据库的连接和关闭操作
mysql_close($link);
2)向表中插入新数据
mysql_query("insert into mytable(id,name) values('".$id."','".$name."')");
上面是向mytable表的id和name字段插入一条数据。
3)从表中查询数据
$rs=mysql_query("select * from mytable mt where mt.id='001'");
4)从表中删除数据
$rs=mysql_query("delete from mytable mt where mt.id='001'");
5)对于复杂查询,例如select子句,mysql3.22以下版本不支持,因此许多时候php编写复杂sql时会得不到结果,这其实不是php的错,而是mysql的版本较低的缘故。
6)对于select返回的结果集,可以如下操作:
对于返回一条结果,可以如下:
   $row=mysql_fetch_object($rs);
   $id=$row->id;//id是字段名称,或者字段的别名,以下同
   $title=$row->title;
   $asker=$row->asker;
对于返回多条结果,可以如下:
  while($row=mysql_fetch_object($rs)){
         $id=$row->id;
         $title=$row->title;
         $asker=$row->asker;
  }
当然还有方法可以使得返回的结果为数组,访问也可以根据字段的位置index值访问,这个可以查询相关手册,就不介绍了。

4,如果你的工程中使用HTML在线编辑器,那么FCKEditor可能是比较不错的一个选择,FCKEditor可以自己去网上下载,下载的地方很多,我介绍一下调用方式:
首先将FCKEditor的目录放到网站根目录下,假设你在网站根目录的/modules/cms/目录下的edit.php中要引用FCKEditor,具体代码如下:
<?php
    $sBasePath = "../../fckeditor/";//fckeditor是FCKEditor的目录
    $oFCKeditor = new FCKeditor('content') ;
    $oFCKeditor->BasePath= $sBasePath ;
    $oFCKeditor->Value="" ;
    $oFCKeditor->Width="666px";
    $oFCKeditor->Height="300px"
?>
<div>
  <?php $oFCKeditor->Create();?>
</div>
显示如下:


5,如何在session中存储数据?
首先要启动session机制,除了apache本身做一定的设置之外,在使用session的php页面中,要先调用session_start()方法,表示在本页面使用session。在session中存储数据的具体方式如下:
<?php
  session_start();
  $username="admin";
  session_register("username"); 
?>
那么在其它的页面,想取得session中的用户名,如下:
<?php
  $username=$_SESSION["username"];
?>
同理,要判断当前访问的用户是否已经登录也可以通过上面的方式进行:当用户登录之后,在session之中注册用户名,在需要session控制的php页面中加入判断,例如:
if(!session_is_registered("username")){
         header("Location:login.php");
}
上面是通过判断session中是否注册了username变量来实现的。

6,PHP中如何定义类及其成员属性与操作,又如何调用?
直接举一个例子,应该可以说明上面的问题:
定义一个字符串处理工具类:StringUtils
<?php
  class StringUtils{
     function StringUtils(){

    }

    function getLength($str){
       return strlen($str);
    }
  }
?>
在php页面中调用方式为:
<?php
  include 'classes/com/xxx/StringUtils.php';
  $length=StringUtils::getLength("abcde");
  //或者
  $instance=new StringUtils;
  $length=$instance->getLength("abcde");
?>
对 于一个类的方法,一般有两种调用方式,一种是当作静态方法进行调用,通过::连接符,一种是当作实例方法进行调用,通过->连接符。虽然调用可以使 用两种方式调用,但是实际中一个类的方法是否为静态方法,往往是已经逻辑上定义好的,因此每一个方法,往往只使用某种方式调用,例如一个服务类中的方法, 基本上应该都是实例方法,而一个工具类中的方法,基本上都是类方法或者说静态方法,例如:
<?php
class UserService{

    var $dbhost = "";  
    var $dbuser = "";  
    var $dbpw = "";   
    var $dbname = "";
   
    function UserService(){
         
    }
   
    function login($username,$password){
        $link = mysql_connect($this->dbhost, $this->dbuser, $this->dbpw) or die("Could not connect: ".mysql_error());
        mysql_select_db($this->dbname);
        $rs=mysql_query("select count(*) as value from cieqas_users where userid='".$username."' and password='".$password."'");
        $row=mysql_fetch_object($rs);
        $value=$row->value;
        mysql_close($link);
        settype($value,"integer");
        if($value<=0){
            return false;
        }       
        return true;
    }
?>
另外,在实例方法中调用$this,才有实际的意义。

7,如何设置一个变量的类型?
PHP可以算作是弱类型语言的一种,不需要对变量进行强制类型定义,例如:
$username="admin";
$length=0;
$obj=new MyClass;
许多时候,需要将一个字符串变量转换为int变量,或者反过来等等,该如何操作呢?其实可以使用settype方法,该方法可以指定变量的类型,签名如下:
settype(var,type)
其中类型的值有boolean(bool)、integer(int)、float、string、array、object、null
例如:
$state="0";
settype($state,"int");
if($state==0){
    ...
}

8,如何将一个数组进行反向排列?
通过array_reverse方法实现,例如:
$arr=array();
$arr[0]=1;
$arr[1]=2;
$arr2=array_reverse($arr);

9,在PHP中如何将一个时间正确的进行显示?
在php 中通过time()方法返回自从 Unix 新纪元(格林威治时间 1970 年 1 月 1 日 00:00:00)到当前时间的秒数,那么如何将该时间正确的显示为本地正确时间,许多时候我们都使用php中的setLocale方法,指定当前的地 域,但是我们往往得不到正确的时间,给大家介绍一个其它的解决方式,就是通过Javascript与php结合去解决,例如:
var time="<?php echo time() ?>";
var time=parseInt(time);
var date=new Date(time*1000);
var pattern="yyyy-MM-dd hh:mm:ss";
var df=new SimpleDateFormat();
var str=df.format(date);
document.write(str);
因此,可以将php中time()的值传递给Javascript,并做为Date对象的参数,然后通过Javascript开源类库JsJava的处理,即可。

10, PHP在当今是非常流行的一门语言,到目前为止已经形成了大量的函数库,例如处理字符串的、数学的、XML的、文件的、SOAP的、网络的等等,不过其在 面向对象方面,还有一定程度的欠缺,然而也并不是说非要面向对象才能算是一门如何如何的语言,然而在实际的网站或者项目开发中,仅仅是大量的函数库有些时 候感觉不是特殊的方便,尤其是有些时候,业务需要我们抽象出架构层次以及各个对象,这个时候定义一套合适的业务类库就比较合适了,毕竟当我们面对更高业务 层面的开发时,我们需要封装的层次更高,那么这个时候类和对象就提上日程了,不过目前使用php的各个函数,感觉也是非常方便的,而且非常强大,这又让我 多少有些埋怨类似Java这样的面向对象的语言,做什么逻辑都要借助一大堆类来实现,看来语言之间是需要互相学习的,而不是互相攻击,解决问题促进行业和 社会的发展才是最根本的。






转自:http://blog.csdn.net/eye_of_back/archive/2007/10/15/1824855.aspx
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值