‘壹’ 怎样用php来给网页做导航栏
译者注 本文原名《Site Navigation with PHP》 原文详述了如何用PHP编程来做出效果理想的网页导航条 本文只选译了其中的部分文章 所选取的部分是文章精髓之所在 只要大家能弄懂这部分内容就可以用同样的原理 思想做出我们需要的效果来 希望给读者能起到抛砖引玉的作用 本肢拆文只需要读者具备PHP HTML的初步知识就可以基本读懂了
译 文 如大家所知PHP对于用数据库驱动的网站(making database driven sites)来讲可谓功能强大 可是我们是否可以用它来做点其他事情呢?PHP给了我们所有我们期望的喊姿工具 for与while的循环结构 数学运算等等 还可以通过两种方式来引用文件 直接引用或向服务器提出申请 其实何止这些 让我们来看一个如何用它来做导航条的例子 完整的原代码 <!—— This <? is how you indicate the start of a block of PHP code ——> <?php # and this # makes this a PHP ment
$full_path = getenv( REQUEST_URI )
$root = dirname($full_path) $page_file = basename($full_path) $page_num = substr($page_file strrpos($page_file _ ) + strpos($page_file l ) (strrpos($page_file _ ) + ))
$partial_path = substr($page_file strrpos($page_file _ ))
$prev_page_file = $partial_path _ (string)($page_num ) l $next_page_file = $partial_path _ (string)($page_num+ ) l
$prev_exists = file_exists($prev_page_file) $next_exists = file_exists($next_page_file)
if ($prev_exists)
{ print <a $root/$prev_page_file >previous</a> if ($next_exists)
{ print | } if ($next_exists)
{ print <a $root/$next_page_file >next</a> }
?>//原程序完
代码分析 OK! 前面做了足够的铺垫工作 现在让我们来看看如何来用PHP来完成这项工作
<!—— This <? is how you indicate the start of a block of PHP code ——> <?php # and this # makes this a PHP ment
$full_path = getenv( REQUEST_URI )
$root = dirname($full_path) $page_file = basename($full_path)
/* PHP函数getenv()用来取得环境变量的值 REQUEST_URI的值是紧跟在主机名后的部分URL 假如URL是 那它的值就为/dinner/l 现在我们将得到的那部分URL放在变量$full_path中 再用dirname()函数来从URL中抓取文件目录 用basename()函数取得文件名 用上面的例子来讲dirname()返回值 /dinner/ basename()返回 l 接下来的部分相对有些技巧 假如我们的文件名以story_x的格式命名 其中x代表页码 我们需要从中将我们使用的页码抽出来 当然文件名不一定只有一位数字的模式或只有一个下划线 它可以是l 同样它还可以叫做l甚至是l 而我们真正想要的就是位于最后一郑饥绝个 _ 和 之间的东东 可采用如下方法 */ $page_num = substr($page_file strrpos($page_file _ ) + strpos($page_file l ) (strrpos($page_file _ ) + )) /* substr($string $start [$length] )函数给了我们字符串$string中从$start开始 长为$length或到末尾的字串(方括号中的参数是可选项 如果省略$length substr就会返回给我们从$start开始直到字符串末尾的字符串) 正如每一个优秀的C程序员告诉你的那样 代表字符串开始的位置开始的数字是 而不是
函数strrpos($string $what)告诉我们字符串$what在变量$string中最后一次出现的位置 我们可以通过它找出文件名中最后一个下划线的位置在哪 同理 接着的strpos($string $what)告诉我们 首次出现的位置 我们通过运用这三个函数取得在最后一个 _ 和 之间的数字(代码中的strpos()+ 代表越过 _ 自己)
剩下的部分很简单 首先为上页和下页构造文件名 */ $partial_path = substr($page_file strrpos($page_file _ ))
$prev_page_file = $partial_path _ (string)($page_num ) l $next_page_file = $partial_path _ (string)($page_num+ ) l
/*(string)($page_num+ )将数学运算$page_num+ 的结果转化为字符串类型 这样就可以用来与其他字串最终连接成为我们需要的文件名
*/ /*现在检查文件是否存在(这段代码假设所有的文件都位于同样的目录下) 并最终给出构成页面导航栏的HTML代码
*/ $prev_exists = file_exists($prev_page_file) $next_exists = file_exists($next_page_file)
if ($prev_exists)
{ print <a $root/$prev_page_file >previous</a> if ($next_exists)
{ print | } if ($next_exists)
{ print <a $root/$next_page_file >next</a> }
lishixin/Article/program/PHP/201311/20771
‘贰’ php截取不定长字符串,截取从第一个a开始到最后一个a之间的内容
使用 strpos 搜索稿源第一次出现雀敬薯的位置
使用顷者 strripos 搜索最后一次出现的位置
strpos("asvcd","a")
使用substr 截取字符串
‘叁’ PHP读取目录下所有文件内容并显示
<?php
function printFile($filepath)
{
//substr(string,start,length)函数返回字符串的一部分;start规定在字符串的何处开始 ;length规定要返回的字符串长度。默认是直到字符串的结尾。
//strripos(string,find,start)查找 "php" 在字符串中最后一次出现的位置; find为规定要查找的字符;start可选。规定开始搜索的位置
//读取文件后缀名
//$filetype = substr ( $filename, strripos ( $filename, "." ) + 1 );
//判断是不是以txt结尾并且是文件
#if ($filetype == "txt" && is_file ( $filepath . "/" . $filename ))
if ( is_file ( $filepath))
{
$filename=iconv("gb2312","utf-8",$filepath);
echo $filename."内容如下:"."<br/>";
$fp = fopen ( $filepath, "r" );//打开文件
#while (! feof ( $f )) //一直输出直到文件结尾
$i = 1;
while ($i < 10)
{
$line = fgets ( $fp );
echo $line."<br/>";
$i = $i +1;
}
fclose($fp);
}
}
(此处空一行)
function readFileRecursive($filepath)
{
if (is_dir ( $filepath )) //判断是不是目录
{
$dirhandle = opendir ( $filepath );//打开文件夹的句柄
if ($dirhandle)
{
//判断是不是有子文件或者文件夹
while ( ($filename = readdir ( $dirhandle ))!= false )
{
if ($filename == "." or $filename == "..")
{
//echo "目录为“.”或“..”"."<br/>";
continue;
}
//判断是否为目录,如果为目录递归调用函数,否则直接读取打印文件
if(is_dir ($filepath . "/" . $filename ))
{
readFileRecursive($filepath . "/" . $filename);
}
else
{
//打印文件
printFile($filepath . "/" . $filename);
echo "<br/>";
}
}
closedir ( $dirhandle );
}
}
else
{
printFile($filepath . "/" . $filename);
return;
}
}
(此处空一行)
header("content-type:text/html;charset=utf-8");
#echo "Hello World"."<br/>";
$filepath = "C:/phpStudy/PHPTutorial/WWW/test/results"; //想要读取的目录
readFileRecursive($filepath )
?>
php还可以读取文件夹下所有图片,方法如下
hostdir=dirname(__FILE__).'/data/upload/admin/20170517/'; //要读取的文件夹
(此处空一行)
$url = '/data/upload/admin/20170517/'; //图片所存在的目录
(此处空一行)
$filesnames = scandir($hostdir); //得到所有的文件
(此处空一行)
// print_r($filesnames);exit;
//获取也就是扫描文件夹内的文件及文件夹名存入数组 $filesnames
(此处空一行)
$www = 'http://www.***.com/'; //域名
(此处空一行)
foreach ($filesnames as $name) {
$aurl= "<img width='100' height='100' src='".$www.$url.$name."' alt = '".$name."'>"; //图片
echo $aurl . "<br/>"; //输出他
‘肆’ php strchr和strrchr的区别
strchr 是 strstr 函数的别名,灶数 查找字符串的首次出现,返回字符串从第粗辩塌一次出现的位置开始到该字符串的结尾或开始。
strrchr – 查找字符串的最后一次出现,返回字符串从最后一次出现的位岩圆置开始到该字符串的结尾。
‘伍’ php 中的strstr()与strchr()的区别
strchr()和strstr()是同义函数。功能效用完全一样。
echo strstr( '[email protected]', '@'); //默认返回查找值@之后的尾部,@123.com
echo strstr('[email protected]', '@', TRUE); //参数设定true, 返回查找值@之前的首部,abc
‘陆’ php 获取某字符串中某字符最后出现的位置
各函数情况如下:
1、strstr(string,string) = strchr(,) //从前面第一次出现某个字符串的地方截取到最后
2、strrchr(string,string) //从某个字符串从最后出现的位置截取到结尾
3、strpos(string,string[,int]) //某个字符串第一次出现的位置
4、strrpos(string,string) //某个字符串最后一次出现的位置
5、substr(string,int[,int]) //从指定位置开始截取字符串,可以指定截取的长度。
6、strlen(string) //获取字符串的长度
‘柒’ php中有几个截取字符创的函数
函数名 作用 php版本
chr() 从指定的 ASCII 值返回字符。 3
chunk_split() 把字符串分割为一连串更小的部分。 3
count_chars() 返回字符串所用字符的信息。 4
explode() 把字符串打散为数组。 3
implode() 把数组元素组合为一个字符串。 3
join() implode() 的别名。 3
levenshtein() 返回两个字符串之间的 Levenshtein 距离。 3
localeconv() 返回包含本地数字及货币信息格式的数组。 4
ltrim() 从字符串左侧删除空格或其他预定义字符。 3
md5() 计算字符串的 MD5 散列。 3
md5_file() 计算文件的 MD5 散列。 4
metaphone() 计算字符串的 metaphone 键。 4
money_format() 把字符串格式化为货币字符串。 4
nl_langinfo() 返回指定的本地信息。 4
nl2br() 在字符串中的每个新行之前插入 HTML 换行符。 3
number_format() 通过千位分组来格式化数字。 3
parse_str() 把查询字符串解析到变量中。 3
print() 输出一个或多个字符串。 3
printf() 输出格式化的字符串。 3
similar_text() 计算两个字符串的匹配字符的数目。 3
sprintf() 把格式化的字符串写写入一个变量中。 3
str_ireplace() 替换字符串中的一些字符。(对大小写不敏感) 5
str_replace() 替换字符串中的一些字符。(对大小写敏感) 3
str_split() 把字符串分割到数组中。 5
strcasecmp() 比较两个字符串。(对大小写不敏感) 3
strchr() 搜索字符串在另一字符串中的第一次出现。strstr() 的别名 3
strcspn() 返回在找到任何指定的字符之前,在字符串查找的字符数。 3
stripos() 返回字符串在另一字符串中第一次出现的位置(大小写不敏感) 5
stristr() 查找字符串在另一字符串中第一次出现的位置(大小写不敏感) 3
strlen() 返回字符串的长度。 3
strpbrk() 在字符串中搜索指定字符中的任意一个。 5
strpos() 返回字符串在另一字符串中首次出现的位置(对大小写敏感) 3
strrchr() 查找字符串在另一个字符串中最后一次出现的位置。 3
strripos() 查找字符串在另一字符串中最后出现的位置(对大小写不敏感) 5
strrpos() 查找字符串在另一字符串中最后出现的位置(对大小写敏感) 3
strspn() 返回在字符串中包含的特定字符的数目。 3
strstr() 搜索字符串在另一字符串中的首次出现(对大小写敏感) 3
strtok() 把字符串分割为更小的字符串。 3
strtr() 转换字符串中特定的字符。 3
substr() 返回字符串的一部分。 3
substr_compare() 从指定的开始长度比较两个字符串。 5
substr_count() 计算子串在字符串中出现的次数。 4
substr_replace() 把字符串的一部分替换为另一个字符串。 4
ucwords() 把字符串中每个单词的首字符转换为大写。 3
wordwrap() 按照指定长度对字符串进行折行处理。 4
‘捌’ (100分)[php]写几个你熟悉的字符串处理函数!
推荐你查看官方PHP手册,以下是摘取相关的资料:
addcslashes — 以 C 语言风格使用反斜线转义字符串中的字符
addslashes — 使用反斜线引用字符串
bin2hex — 将二进制数据转换成十六进制表示
chop — rtrim 的别名
chr — 返回指定的字符
chunk_split — 将字符串分割成小块
convert_cyr_string — 将字符由一种 Cyrillic 字符转换成另一种
convert_uudecode — 解码一个 uuencode 编码的字符串
convert_uuencode — 使用 uuencode 编码一个字符串
count_chars — 返回字符串所用字符的信息
crc32 — 计算一个字符串的 crc32 多项式
crypt — 单向字符串散列
echo — 输出一个或多个字符串
explode — 使用一个字符串分割另一个字符串
fprintf — 将格式化后的字符洞哗串写入到流
get_html_translation_table — 返回使用 htmlspecialchars 和 htmlentities 后的转换表
hebrev — 将逻辑顺序希伯来文(logical-Hebrew)转换为视觉顺序希伯来文(visual-Hebrew)
hebrevc — 将逻辑顺序希伯来文(logical-Hebrew)转换为视觉顺序希伯来文(visual-Hebrew),并且转换换行符
hex2bin — Decodes a hexadecimally encoded binary string
html_entity_decode — Convert all HTML entities to their applicable characters
htmlentities — Convert all applicable characters to HTML entities
htmlspecialchars_decode — Convert special HTML entities back to characters
htmlspecialchars — Convert special characters to HTML entities
implode — Join array elements with a string
join — 别名 implode
lcfirst — Make a string's first character lowercase
levenshtein — Calculate Levenshtein distance between two strings
localeconv — Get numeric formatting information
ltrim — Strip whitespace (or other characters) from the beginning of a string
md5_file — 计算指定文件的 MD5 散列值
md5 — 计算字符串的 MD5 散列值
metaphone — Calculate the metaphone key of a string
money_format — Formats a number as a currency string
nl_langinfo — Query language and locale information
nl2br — 在字符串镇郑所有新行之前插入 HTML 换行标御颤颂记
number_format — Format a number with grouped thousands
ord — 返回字符的 ASCII 码值
parse_str — 将字符串解析成多个变量
print — 输出字符串
printf — 输出格式化字符串
quoted_printable_decode — Convert a quoted-printable string to an 8 bit string
quoted_printable_encode — Convert a 8 bit string to a quoted-printable string
quotemeta — Quote meta characters
rtrim — 删除字符串末端的空白字符(或者其他字符)
setlocale — Set locale information
sha1_file — 计算文件的 sha1 散列值
sha1 — 计算字符串的 sha1 散列值
similar_text — 计算两个字符串的相似度
soundex — Calculate the soundex key of a string
sprintf — Return a formatted string
sscanf — Parses input from a string according to a format
str_getcsv — 解析 CSV 字符串为一个数组
str_ireplace — str_replace 的忽略大小写版本
str_pad — 使用另一个字符串填充字符串为指定长度
str_repeat — 重复一个字符串
str_replace — 子字符串替换
str_rot13 — 对字符串执行 ROT13 转换
str_shuffle — 随机打乱一个字符串
str_split — 将字符串转换为数组
str_word_count — 返回字符串中单词的使用情况
strcasecmp — 二进制安全比较字符串(不区分大小写)
strchr — 别名 strstr
strcmp — 二进制安全字符串比较
strcoll — 基于区域设置的字符串比较
strcspn — 获取不匹配遮罩的起始子字符串的长度
strip_tags — 从字符串中去除 HTML 和 PHP 标记
stripcslashes — 反引用一个使用 addcslashes 转义的字符串
stripos — 查找字符串首次出现的位置(不区分大小写)
stripslashes — 反引用一个引用字符串
stristr — strstr 函数的忽略大小写版本
strlen — 获取字符串长度
strnatcasecmp — 使用“自然顺序”算法比较字符串(不区分大小写)
strnatcmp — 使用自然排序算法比较字符串
strncasecmp — 二进制安全比较字符串开头的若干个字符(不区分大小写)
strncmp — 二进制安全比较字符串开头的若干个字符
strpbrk — 在字符串中查找一组字符的任何一个字符
strpos — 查找字符串首次出现的位置
strrchr — 查找指定字符在字符串中的最后一次出现
strrev — 反转字符串
strripos — 计算指定字符串在目标字符串中最后一次出现的位置(不区分大小写)
strrpos — 计算指定字符串在目标字符串中最后一次出现的位置
strspn — 计算字符串中全部字符都存在于指定字符集合中的第一段子串的长度。
strstr — 查找字符串的首次出现
strtok — 标记分割字符串
strtolower — 将字符串转化为小写
strtoupper — 将字符串转化为大写
strtr — 转换指定字符
substr_compare — 二进制安全比较字符串(从偏移位置比较指定长度)
substr_count — 计算字串出现的次数
substr_replace — 替换字符串的子串
substr — 返回字符串的子串
trim — 去除字符串首尾处的空白字符(或者其他字符)
ucfirst — 将字符串的首字母转换为大写
ucwords — 将字符串中每个单词的首字母转换为大写
vfprintf — 将格式化字符串写入流
vprintf — 输出格式化字符串
vsprintf — 返回格式化字符串
wordwrap — 打断字符串为指定数量的字串
====================
这其中我熟悉的有:
echo — 输出一个或多个字符串
explode — 使用一个字符串分割另一个字符串
addslashes — 使用反斜线引用字符串
bin2hex — 将二进制数据转换成十六进制表示
html_entity_decode — Convert all HTML entities to their applicable characters
htmlentities — Convert all applicable characters to HTML entities
htmlspecialchars_decode — Convert special HTML entities back to characters
htmlspecialchars — Convert special characters to HTML entities
implode — Join array elements with a string
..........
大部分都用过
‘玖’ php 获取字符串某字符的位置!
有以下几种方法:
stripos() 返回字符串在另一字符串中第一次出现的位置(大小写不敏感)
stristr() 查找字符串在另一字符串中第一次出现的位置(大小写不敏感)
strpos() 返回字符串在另一字符串中首次出现的位置(对大小写敏感)
strrchr() 查找字符串在另一个字符串中最后一次出现的位置。
strripos() 查找字符串在另一字符串中最后出现的位置(对大小写不敏感)
strrpos() 查找字符串在另一字符串中最后出现的位置(对大小写敏感)
(9)php最后一次出现的位置扩展阅读:
PHP常用函数:
strtoupper()函数把字符串转换为大写
strtolower()函数把字符串转换为小写
strtok()函数把字符串分割为更小的字符串
strstr()函数搜索一个字符串在另一个字符串中的第一次出现
strspn()函数返回在字符串中包含的特定字符的数目
strrpos()函数查找字符串在另一个字符串中最后一次出现的位置
strripos()函数查找字符串在另一个字符串中最后一次出现的位置
‘拾’ php如何查找一个中文字符串最后出现位置
在php中 strrpos函数 计算指定字符串在目标字符串中最后一次出现的位置
strrpos
(php 4, php 5)
strrpos — 计算指定字符串在目标字符串中最后一次出现的位置
说明
int strrpos ( string $haystack , string $needle [, int $offset = 0 ] )
返回字符串 haystack 中 needle 最后一次出现的数字位置。注意 php4 中,needle 只能为单个字符。
如果 needle 被指定为一个字符串,那么将仅使用第一个字符。
参数
haystack
在此字符串中进行查找。
needle
如果 needle不是一个字符串,它将被转换为整型并被视为字符的顺序值。
offset
或许会查找字符串中任意长度的子字符串。
负数值将导致查找在字符串结尾处开始的计数位置处结束。
返回值
返回 needle 存在的位置。如果没有找到,返回 false。
php 如何判断字符串中某一字符出现的次数?
介绍一个php内置函数substr_count()来实现查询指定字符在字符串中出现的次数,也就是字符出现次数,更实用的字符串查找。
函数:substr_count()
功能:计算特定字符在字符串中出现次数
函数原型:int substr_count(string haystrack, string needle)
参数说明:
haystrack 必填 指定要查询的字符串
needle 必填 指定需要查询的字符
返回值:返回值为整型数 字符在指定字符串中出现的次数