<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-cn">
		<id>http://wiki.tomtalk.net/index.php?action=history&amp;feed=atom&amp;title=PHP%E5%AD%97%E7%AC%A6%E5%A4%84%E7%90%86</id>
		<title>PHP字符处理 - 版本历史</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.tomtalk.net/index.php?action=history&amp;feed=atom&amp;title=PHP%E5%AD%97%E7%AC%A6%E5%A4%84%E7%90%86"/>
		<link rel="alternate" type="text/html" href="http://wiki.tomtalk.net/index.php?title=PHP%E5%AD%97%E7%AC%A6%E5%A4%84%E7%90%86&amp;action=history"/>
		<updated>2026-04-24T10:00:34Z</updated>
		<subtitle>本wiki的该页面的版本历史</subtitle>
		<generator>MediaWiki 1.24.2</generator>

	<entry>
		<id>http://wiki.tomtalk.net/index.php?title=PHP%E5%AD%97%E7%AC%A6%E5%A4%84%E7%90%86&amp;diff=4542&amp;oldid=prev</id>
		<title>Tom：/* 字符串的定义方法 */</title>
		<link rel="alternate" type="text/html" href="http://wiki.tomtalk.net/index.php?title=PHP%E5%AD%97%E7%AC%A6%E5%A4%84%E7%90%86&amp;diff=4542&amp;oldid=prev"/>
				<updated>2016-08-27T07:58:29Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;字符串的定义方法&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==password_hash==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$password = 'rasmuslerdorf';&lt;br /&gt;
&lt;br /&gt;
$hash = crypt($password);&lt;br /&gt;
$hash = password_hash($password, PASSWORD_DEFAULT);&lt;br /&gt;
$hash = '$2y$07$BCryptRequires22Chrcte/VlQH0piJtjXl.0t1XkA8pw9dMXTpOq';&lt;br /&gt;
&lt;br /&gt;
if (password_verify($password, $hash)) {&lt;br /&gt;
    echo 'Password is valid!';&lt;br /&gt;
} else {&lt;br /&gt;
    echo 'Invalid password.';&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==PHP的mb_substr和mb_strcut的区别==&lt;br /&gt;
&lt;br /&gt;
php的mbstring扩展模块提供了多字节字符的处理能力，平常最常用的就是用mbstring来切分多字节的中文字符，这样可以避免出现半个字符的情况，由于是php的扩展，它的性能也要比一些自定义的多字节切分函数要好上一些。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$str = '我是一串比较长的中文-www.webjx.com';&lt;br /&gt;
echo &amp;quot;mb_substr:&amp;quot; . mb_substr($str, 0, 6, 'utf-8');&lt;br /&gt;
echo &amp;quot;&amp;lt;br&amp;gt;&amp;quot;;&lt;br /&gt;
echo &amp;quot;mb_strcut:&amp;quot; . mb_strcut($str, 0, 6, 'utf-8');&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
输出结果如下：&lt;br /&gt;
&lt;br /&gt;
mb_substr:我是一串比较&lt;br /&gt;
&lt;br /&gt;
mb_strcut:我是&lt;br /&gt;
&lt;br /&gt;
==字符串的定义方法==&lt;br /&gt;
&lt;br /&gt;
PHP字符串，有4种方法定义： &lt;br /&gt;
# 单引号 &lt;br /&gt;
# 双引号 &lt;br /&gt;
# heredoc &lt;br /&gt;
# nowdoc （自php5.3.0以后）&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$name = 'tom';&lt;br /&gt;
&lt;br /&gt;
//heredoc：转义变量。专门处理大段字符串的通用处理方案。&lt;br /&gt;
$str2 = &amp;lt;&amp;lt;&amp;lt;EOD   &lt;br /&gt;
My name &lt;br /&gt;
is $name.&lt;br /&gt;
EOD;&lt;br /&gt;
&lt;br /&gt;
//nowdoc：不转义变量。heredoc的高效静态版本。&lt;br /&gt;
$str1 = &amp;lt;&amp;lt;&amp;lt;'EOD' &lt;br /&gt;
My name &lt;br /&gt;
is $name.&lt;br /&gt;
EOD;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==处理PHP字符串的10个简单方法==&lt;br /&gt;
&lt;br /&gt;
PHP处理字符串的能力非常强大，方法也是多种多样，但有的时候你需要选择一种最简单且理想的解决方法。文章列举了10个PHP中常见的字符串处理案例，并提供了相对应的最理想的处理方法。&lt;br /&gt;
&lt;br /&gt;
;1.确定一个字符串的长度&lt;br /&gt;
&lt;br /&gt;
这是文章中最明显的一个例子，其中的问题是我们如何来确定一个字符串的长度，这里我们不能不提的就是strlen()函数：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$text = &amp;quot;sunny day&amp;quot;; &lt;br /&gt;
$count = strlen($text); // $count = 9&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;2.截取文本，创建一个摘要&lt;br /&gt;
&lt;br /&gt;
新闻性质的网站通常会截取一个大约200字左右的段落，并在次段落的末尾加上省略号来形成一个摘要，这时，你可以使用substr_replace()函数来实现此功能。由于篇幅的原因，这里只演示对40个字符的限制：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$article = &amp;quot;BREAKING NEWS: In ultimate irony, man bites dog.&amp;quot;;&lt;br /&gt;
$summary = substr_replace($article, &amp;quot;…&amp;quot;, 40);&lt;br /&gt;
//$summary = &amp;quot;BREAKING NEWS: In ultimate irony, man bi…&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;3.计算字符串中的字符和单词数&lt;br /&gt;
&lt;br /&gt;
相信您经常会看到一些博客或者新闻类文章，来总结文章的总字数，或者我们也经常看到一些投稿的要求：在一定的字数范围内。这时，你可以使用str_word_count()函数来计算文章字数的总和：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$article = &amp;quot;BREAKING NEWS: In ultimate irony, man bites dog.&amp;quot;;&lt;br /&gt;
$wordCount = str_word_count($article); // $wordCount = 8&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
有的时候你需要更加严格的控制投稿者的使用空间，例如一些批注等等。如果你想知道有多少个字符来组成一个数组，请使用count_chars()函数。&lt;br /&gt;
&lt;br /&gt;
;4.解析CSV文件&lt;br /&gt;
&lt;br /&gt;
数据通常是以逗号分隔的形式存储在文件中的(如一个已知的CSV文件)，CSV文件使用一个逗号或者类似于预定义符号，将每列字符串组成一个单独的行。你可能经常创建PHP脚本来导入这些数据，或者解析出你所需要的东西，这些年来，我也看到过很多解析CSV文件的方法，最常见的就是使用fgets()和explode()函数的组合来读取和解析文件，然而，最简单的方法是使用一个函数来解决问题，但它并不属于PHP的字符串处理库里的一部分：fgetcsv()函数。使用fopen()和fgetcsv()函数，我们能够很容易的解析这个文件，同时检索出每个联系人的名字：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$fh = fopen(&amp;quot;contacts.csv&amp;quot;, &amp;quot;r&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
while ($line = fgetcsv($fh, 1000, &amp;quot;,&amp;quot;)) {&lt;br /&gt;
    echo &amp;quot;Contact: {$line[1]}&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;5.转换成一个字符串数组&lt;br /&gt;
&lt;br /&gt;
某些时候，你可能需要创建CSV文件，同时又在这些文件中进行读取，这就意味着你需要将那些同逗号分隔的字符串转换成数据。如果这些数据最初是从数据库检索出的，那么它很可能会只给您提供一个数组。这时，您可以使用implode()函数，将这些字符串转换成一个数组：&lt;br /&gt;
&lt;br /&gt;
$csv = implode(&amp;quot;,&amp;quot;, $record);&lt;br /&gt;
&lt;br /&gt;
;6.将网址转换成超链接&lt;br /&gt;
&lt;br /&gt;
目前许多WYSIWYG编辑器提供的工具栏，都允许用户标记文本，包括超链接。但是，当内容呈现到页面上时，你可以很容易的自动执行此过程，同时保证您不出现额外的错误。要转换成超链接的URL，你可以使用preg_replace()函数，它可以按照正则表达式来搜索一个字符串，并定义了URL的结构：&lt;br /&gt;
&lt;br /&gt;
$url = &amp;quot;W.J. Gilmore, LLC (http://www.php100.com)&amp;quot;;http://www.php100.com)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
$url = preg_replace(&amp;quot;/http://([A-z0-9./-]+)/&amp;quot;, &amp;quot;$0&amp;quot;, $url);&lt;br /&gt;
&lt;br /&gt;
// $url = &amp;quot;W.J. Gilmore, LLC (&lt;br /&gt;
&lt;br /&gt;
;7.从一个字符串中去除HTML标签&lt;br /&gt;
&lt;br /&gt;
作为Web开发人员，其中的一个主要工作就是要确保用户输入中不含有危险字符，如果有，这会导致SQL注入或脚本攻击。PHP语言中包含了很多安全方面的功能，这些功能能够帮助你过滤数据，包括延长过滤器。例如，你可以允许用户中带有一些基本的HTML语句，包括一些注释。实现这个功能，你可以使用带有检查功能函数：strip_tags()。它在默认的情况下是从字符串中删除所有的HTML标签，但同时也允许覆盖默认或者你指定的标签。例如，在下面的例子中，你可以除去所有的标签：&lt;br /&gt;
&lt;br /&gt;
$text = strip_tags($input, &amp;quot; &amp;quot;);&lt;br /&gt;
&lt;br /&gt;
;8.比较两个字符串&lt;br /&gt;
&lt;br /&gt;
比较两个字符串，以确保它们是相同的。例如，判断用户第一次与第二次输入的密码是否相同，你可以使用substr_compare()函数来很容易的现实：&lt;br /&gt;
&lt;br /&gt;
$pswd = &amp;quot;secret&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
$pswd2 = &amp;quot;secret&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
if (! strcmp($pswd, $pswd2)) { &lt;br /&gt;
    echo &amp;quot;The passwords are not identical!&amp;quot;; &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
如果你想判断两个字符串不区分大小写，可以使用strcasecmp()函数。&lt;br /&gt;
&lt;br /&gt;
;9.转换换行符&lt;br /&gt;
&lt;br /&gt;
在本文中我介绍了如何轻松转换成超超链接的URL，现在介绍nl2br()函数，这个函数能够帮助你将任何换行符转换成HTML标签。&lt;br /&gt;
&lt;br /&gt;
$comment = nl2br($comment);&lt;br /&gt;
&lt;br /&gt;
;10.应用自动换行&lt;br /&gt;
&lt;br /&gt;
应用自动换行，你可以使用PHP中的这个函数：wordwrap()：&lt;br /&gt;
&lt;br /&gt;
$speech = &amp;quot;Four score and seven years ago our fathers brought forth, upon this continent, a new nation, conceived in Liberty, and dedicated to the proposition that all men are created equal.&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
echo wordwrap($speech, 30);&lt;br /&gt;
&lt;br /&gt;
执行上面的代码，结果是:&lt;br /&gt;
&lt;br /&gt;
Four score and seven years ago our fathers brought forth, upon this continent, a new nation, conceived in Liberty, and dedicated to the proposition that all men are created equal.&lt;/div&gt;</summary>
		<author><name>Tom</name></author>	</entry>

	</feed>