PHP开发中的链接分类、文本处理与日期操作
立即解锁
发布时间: 2025-08-17 00:47:25 阅读量: 1 订阅数: 2 

### PHP 开发中的链接分类、文本处理与日期操作
在 PHP 开发中,我们常常会遇到链接分类、文本处理以及日期操作等问题。下面将详细介绍这些方面的处理方法。
#### 链接分类
对链接进行分类是一项常见的任务。我们可以通过以下代码来实现对链接的分类:
```php
foreach ($matches[1] as $link) {
if ($all_links[$link]) {
continue;
}
$all_links[$link] = true;
if (preg_match('/^javascript:/', $link)) {
$js_links[] = $link;
} elseif (preg_match('/^https{0,1}:/i', $link)) {
$full_links[] = $link;
} else {
$local_links[] = $link;
}
}
```
上述代码会遍历所有链接,首先确保该链接是新的,若为新链接,则使用正则表达式判断其类型,将其分别归类到 JavaScript 链接、完整链接或本地链接中。
分类完成后,我们可以通过以下代码打印分类结果:
```php
print '<table border="0">';
print "<tr><td>number of links:</td><td>";
print strval(count($matches[1])) . "</td></tr>";
print "<tr><td>unique links:</td><td>";
print strval(count($all_links)) . "</td></tr>";
print "<tr><td>local links:</td><td>";
print strval(count($local_links)) . "</td></tr>";
print "<tr><td>full links:</td><td>";
print strval(count($full_links)) . "</td></tr>";
print "<tr><td>javascript junk:</td><td>";
print strval(count($js_links)) . "</td></tr>";
print '</table>';
```
操作步骤如下:
1. 遍历链接数组,对每个链接进行判断。
2. 根据链接的类型,将其添加到相应的数组中。
3. 打印分类结果,包括链接总数、唯一链接数、本地链接数、完整链接数和 JavaScript 链接数。
#### 文本处理
在 Web 编程中,HTML 和纯文本的兼容性是一个令人头疼的问题。人们通常以纯文本形式在表单文本区域输入内容,但我们往往需要以 HTML 形式显示这些内容。
##### 纯文本转 HTML 标记
最简单的方法是使用 PHP 的 `nl2br()` 函数,但该方法不够灵活,会将每个换行符都转换为 `<br>` 标签,当纯文本中混合了 HTML 时,显示效果会变差。
这里介绍一个更好的函数 `autop()`:
```php
function autop($pee, $br = 1) {
$pee = $pee . "\n";
$pee = preg_replace('|<br />\s*<br />|', "\n\n", $pee);
$pee = preg_replace('!(<(?:table|ul|ol|li|pre|form|blockquote|h[1-6])[^>]*>)!', "\n$1", $pee);
$pee = preg_replace('!(</(?:table|ul|ol|li|pre|form|blockquote|h[1-6])>)!', "$1\n", $pee);
$pee = preg_replace("/(\r\n|\r)/", "\n", $pee);
$pee = preg_replace("/\n\n+/", "\n\n", $pee);
$pee = preg_replace('/\n?(.+?)(?:\n\s*\n|\z)/s', "\t<p>$1</p>\n", $pee);
$pee = preg_replace('|<p>\s*?</p>|', '', $pee);
$pee = preg_replace("|<p>(<li.+?)</p>|", "$1", $pee);
$pee = preg_replace('|<p><blockquote([^>]*)>|i', "<blockquote$1><p>", $pee);
$pee = str_replace('</blockquote></p>', '</p></blockquote>', $pee);
$pee = preg_replace('!<p>\s*(</?(?:table|tr|td|th|div|ul|ol|li|pre|select|form|blockquote|p|h[1-6])[^>]*>)!', "$1", $pee);
$pee = preg_replace('!(</?(?:table|tr|td|th|div|ul|ol|li|pre|select|form|blockquote|p|h[1-6])[^>]*>)\s*</p>!', "$1", $pee);
if ($br) $pee = preg_replace('|(?<!<br />)\s*\n|', "<br />\n", $pee);
$pee = preg_replace('!(</?(?:table|tr|td|th|div|dl|dd|dt|ul|ol|li|pre|select|form|blockquote|p|h[1-6])[^>]*>)\s*<br />!
```
0
0
复制全文
相关推荐









