首页 > 编程技术 > php

得到PHP一个字符串的最后一个字符

发布时间:2016-11-25 16:11



<?php
得到PHP中最后一个字符

$str = " JhlIsHero ";
$var = trim($str);
$len = strlen($var)-1;
echo $var{$len};
?>

得到PHP一个字符串的最后一个字符

是不是PHP也和C一样,用一组连续地址来存储字符串呢......

    PHP 尽管提供了大量有用的函数,但是在特殊情况下还可能需要进行扩展编程,比如大量的 PECL(PHP Extension Community Library)就是以扩展的形式提供的(动态链接库dll文件),它们比 PEAR 的运行效率要高很多。
    PHP 扩展是用 C 或 C++ 编写的,需要编译成动态连接库 dll 文件后在 PHP 环境下注册后才能使用。
    编写 PHP 扩展的软件要求:
      VC++6.0 或 VC++.NET 环境。
      PHP 的源代码,需要编译。
    如果不愿意编译 PHP 的源代码,可以再下载 PHP 的已经编译成功的二进制代码(就是我们部署 PHP 运行环境的那些文件包)。注意分别下载的源文件包和已编译包,它们的版本必须一致。

    过程:

    1,安装 VC++6.0,并选择把其可执行文件路径加入环境变量中,使在命令行环境任意路径下可以运行编译器。
    2,安装 PHP 运行环境,并与 IIS 正确集成在一起。假设使用的 PHP 版本为 5.2.5,下载 php-5.2.5-Win32.zip 二进制包和 php-5.2.5.tar.gz 源代码包。安装环境为 C:php-5.2.5-Win32。分别把源代码包和二进制包解压到该文件夹下。从 php.ini-recommended 拷贝生成一个 php.ini 文件。
    3,建立 C:php-5.2.5-Win32Release_TS 文件夹,拷贝 C:php-5.2.5-Win32devphp5ts.lib 文件到这里。
    4,进入 C:php-5.2.5-Win32ext 文件夹,运行命令:
      C:php-5.2.5-Win32ext>..php.exe ext_skel_win32.php --extname=myphpext
      Creating directory myphpext
      Creating basic files: config.m4 config.w32 .cvsignore myphpext.c php_myphpext.h
      CREDITS EXPERIMENTAL tests/001.phpt myphpext.php [done].

      To use your new extension, you will have to execute the following steps:

      1.  $ cd ..
      2.  $ vi ext/myphpext/config.m4
      3.  $ ./buildconf
      4.  $ ./configure --[with|enable]-myphpext
      5.  $ make
      6.  $ ./php -f ext/myphpext/myphpext.php
      7.  $ vi ext/myphpext/myphpext.c
      8.  $ make

      Repeat steps 3-6 until you are satisfied with ext/myphpext/config.m4 and
      step 6 confirms that your module is compiled into PHP. Then, start writing
      code and repeat the last two steps as often as necessary.

 From: http://hi.baidu.com/kakuma/blog/item/940e911ea4fd9e1c413417d2.html


1、int     filesize(string filename),获取文件的大小。对于2~4GB之间的文件,可以使用sprintf("%u",filesize($file))来处理

2、bool     unlink(string filename) ,删除一个文件

3、bool     rmdir(string dirname)      ,删除一个目录

4、bool     mkdir(string     pathname [,int     mode])      ,新建一个由lpathname指定的目录,mode是指操作权限,默认为0777,表示最大可能的访问权限

5、string basename(string path [,string suffix]) ,path参数给出一个文件的全路径字符串,函数返回基本的文件名。如文件名以suffix结束,则去掉这部分

6、string     dirname(string path) ,返回路径中的目录部分。

7、array     pathinfo(string path) ,返回文件路径的信息,包含以下的数组单元dirname,basename,extension.

8、string     realpath(string path)     ,返回规范化的绝对路径名

9、bool    copy( string     source     ,string dest) ,将文件从source复制到dest

                        例:copy("hello.txt","temp.php");

10、float    disk_free_space(string    directory )    ,返回目录中的可用空间

                        例:$df = disk_free_space("F:/");
                               echo $df.''<br>'';

要用到,在网站上找了一个,然后自己整理成一个类..

 



<?php
/*
*PHP获取和设置XML节点,用于修改和读取站点配置文件
*2008-4-3 
*LIQUAN
*eg.get config 
*$c = new Configuration(''config.xml'');
*echo( $c->TemplateDirectory." " );
*
* set config
* $c = new Configuration(''config.xml'');
* $c->TemplateDirectory=''test'';
* $c->save();
*/

class Configuration
{
 
private $configFile;
 
private $items=array();
 
 
//构造函数
 function __construct($configFile)
 {
   
$this->configFile=$configFile;
   
$this->parse();
 } 
 
 
//获取属性
 function __get($id)
 {
    
return $this->items[$id];
 }

    
//设置属性
 function __set($key,$value)
 {
    
$this->$items[$key]=$value;
 } 
    
 
//解析XML文件保存到数组
 function parse()
 {
    
$doc=new DOMDocument();
    
$doc->load($this->configFile);
    
$cn=$doc->getElementsByTagName(''config'');
    
$nodes=$cn->item(0)->getElementsByTagName(''*'');
    
foreach($nodes as $node)
    {
          
$this->items[$node->nodeName]=$node->nodeValue;
    }
 }

 
//保存XML文件
    function save()
    {
    
$doc=new DOMDocument();
       
$doc->formatOutput=true;

    
$r=$doc->createElement(''config'');
       
$doc->appendChild($r);

    
foreach($this->items as $k=>$v)
    {
         
$keyName=$doc->createElement($k);
         
$keyName->appendChild($doc->createTextNode($v));
   
$r->appendChild($keyName);
    }
    
copy($this->configFile,$this->configFile.".bak");
    
    
$doc->save($this->configFile);
    }

}


?>

 



    PHP 语言从诞生起,就具有了很好的面向过程编程的特性。只是在其进化过程中才逐渐加强了面向对象的特性,直到 PHP5.0,也才接近完善。一般来说,PHP 的初学者和从 ASP 转向 PHP 开发的程序员比较偏向于面向过程编程,因为教科书和大量的参考书就是这样教的。

    但是随着 PHP 语言的发展和编程技术的进步,即使是 PHP 开发人员,也应当向面向对象编程进化!因为随着 PHP 版本的升级,PHP 也在寻求向企业开发市场发展,将来的编程会越来越复杂。再者,为了解决目前大量的重复开发和代码质量低下问题,面向对象是个很好的解决方案。比如目前流行的 PEAR、Smarty、PHPlib 等 PHP 轻型函数库,都是采用 OOP 的方法实现。还有 Zend Framework 等面向对象的应用级编程框架,都是面向对象编程的典范,在该框架下编程,完全采用面向对象编程的风格。

    所以,无论是考虑 PHP 的本身及其发展,还是考虑到程序员编程思维的培养,及其职业生涯的发展,面向对象的编程都是一个大方向。特别是对目前 PHP 的编程现状,我特别推荐大家站在面向对象一边,面向对象编程才是发展出路所在。

    张庆(网眼)
    网眼视界:http://blog.why100000.com
    2008-3-28 



<
标签:[!--infotagslink--]