strtok

strtok 函數

(PHP 4, PHP 5, PHP 7, PHP 8)

strtok — 标记分割字符串

说明

strtok(string $string, string $token): string|false
strtok(string $token): string|false

strtok() 将字符串 string 分割为若干子字符串,每个子字符串以 token 中的字符分割。这也就意味着,如果有个字符串是 “This is an example string”, 你可以使用空格字符作为 token,将这句话分割成独立的单词。

注意,仅第一次调用 strtok 函数时才使用 string 参数。 随后每次调用 strtok 都将只使用 token 参数,因为它会记住它在当前字符串中的位置。 如果要重新开始分割一个新的字符串,你需要再次使用 string 参数来调用 strtok 函数来对其进行初始化。 注意,可以在 token 参数中使用多个字符。字符串将被 token 参数中任何一个字符分割。

参数

string
被分成若干子字符串的原始字符串。
token
分割 string 时使用的分界字符。

範例

<?php
$string = "This is\tan example\nstring";
/* 使用制表符和换行符作为分界符 */
$tok = strtok($string, " \n\t");

while ($tok !== false) {
    echo "Word=$tok<br />";
    $tok = strtok(" \n\t");
}
?>
結果:
Word=This
Word=is
Word=an
Word=example
Word=string

explode

explode 函數

(PHP 4, PHP 5, PHP 7, PHP 8)

explode — 使用一个字符串分割另一个字符串

使用

explode(string $separator, string $string, int $limit = PHP_INT_MAX): array

參數

separator
边界上的分隔字符。
string
输入的字符串。
limit
如果设置了 limit 参数并且是正数,则返回的数组包含最多 limit 个元素,而最后那个元素将包含 string 的剩余部分。
如果 limit 参数是负数,则返回除了最后的 -limit 个元素外的所有元素。
如果 limit 是 0,则会被当做 1。

範例

<?php
// 示例 1
$pizza  = "piece1 piece2 piece3 piece4 piece5 piece6";
$pieces = explode(" ", $pizza);
echo $pieces[0]; // piece1
echo $pieces[1]; // piece2

// 示例 2
$data = "foo:*:1023:1000::/home/foo:/bin/sh";
list($user, $pass, $uid, $gid, $gecos, $home, $shell) = explode(":", $data);
echo $user; // foo
echo $pass; // *

?>
結果
範例一
piece1piece2
範例二
foo*

fgets

fgets 函數

(PHP 4, PHP 5, PHP 7, PHP 8)
fgets — 從文件指針中讀取一行

fgets(resource $stream, ?int $length = null): string|false

範例  逐行讀取文件

参数

stream
文件指针必须是有效的,必须指向由 fopen() 或 fsockopen() 成功打开的文件(并还未由 fclose() 关闭)。

length
从 handle 指向的文件中读取一行并返回长度最多为 length – 1 字节的字符串。碰到换行符(包括在返回值中)、EOF 或者已经读取了 length – 1 字节后停止(看先碰到那一种情况)。如果没有指定 length,则默认为 1K,或者说 1024 字节。

<?php
$fp = @fopen("/tmp/inputfile.txt", "r");
if ($fp) {
    while (($buffer = fgets($fp, 4096)) !== false) {
        echo $buffer;
    }
    if (!feof($fp)) {
        echo "Error: unexpected fgets() fail\n";
    }
    fclose($fp);
}
?>

fopen

fopen  函數

(PHP 4, PHP 5, PHP 7, PHP 8)
fopen — 打開文件或者 URL

fopen(
    string $filename,
    string $mode,
    bool $use_include_path = false,
    ?resource $context = null
): resource|false

mode

mode 參数指定了所讀取的類型。可以是以下:
fopen() 中 mode 的可能值列表
mode 說明
‘r’ 只讀方式打開,將文件指向文件頭。
‘r+’ 讀寫方式打開,將文件指向文件頭。
‘w’ 寫入方式打開,將文件指向文件頭並将文件大小截为零。如果文件不存在則創建它。
‘w+’ 讀寫方式打開,否則視為同 ‘w’。

<?php
$handle = fopen("c:\\folder\\resource.txt", "r");
?>

preg_match函數

(PHP 4, PHP 5, PHP 7, PHP 8)

preg_match — 执行匹配正则表达式

preg_match(
string $pattern,
string $subject,
array &$matches = null,
int $flags = 0,
int $offset = 0
)
搜索subject与pattern定的正则表达式的一个匹配

<?php
$subject = "abcdef";
$pattern = '/^def/';
preg_match($pattern, substr($subject,3), $matches, PREG_OFFSET_CAPTURE);
print_r($matches);
?>

以上示例会输出:

Array
(
    [0] => Array
        (
            [0] => def
            [1] => 0
        )

)

array_push函數

(PHP 4, PHP 5, PHP 7, PHP 8)

array_push — 將一個或多個單元押入數值的末尾

array_push() 将 array 当成一个栈,并将传入的变量压入 array 的末尾。array 的长度将根据入栈变量的数目增加。和如下效果相同:
<?php
$stack = array("orange", "banana");
array_push($stack, "apple", "raspberry");
print_r($stack);
?>

以上示例会输出:

Array
(
    [0] => orange
    [1] => banana
    [2] => apple
    [3] => raspberry
)