0

php 4functionspliti()だけでなくphp 5functionも使用 しましpreg_matchた。私のローカルホスト(xamppバージョン1.7.2)に出力が表示されます。しかし、サーバーにアップロードすると、preg_match に何も表示されず、false が返されます。どうしてか分かりません。誰でもこれについて私を助けることができますか?

私の関数は、html ページの doctype と char-set を取得するためのものです。以下に関数を示します。

function GetContentType($Data) { // data as the html code
     print preg_match('@<meta\s+http-equiv="Content-Type"\s+content="([\w/]+)(;\s+charset=([^\s"]+))?@i', $Data, $matches);
    print var_dump($matches);
    if (isset($matches[3]))
        return $matches[3];
    else
        return "No Character set detected.";
}

function GetDocType($Data) { // Data as the html codes
    print preg_match('/<!DOCTYPE (\w.*)dtd">/is', $Data, $patterns);
    print var_dump($patterns);
    $Data = explode(" ", str_replace('"', "", $patterns[1]));
    $Data = $Data[0] . " " . $Data[3] . " " . $Data[4] . " " . $Data[5];
    return str_replace("//EN", "", $Data);
}
4

1 に答える 1

1

PHPドキュメントから:

preg_match() 5.3.6 Returns FALSE if offset is higher than subject length.

ここで問題になると思います...

于 2013-04-17T10:52:17.687 に答える