对不起大家忘了这一个,我需要在php文件例子中读取第一批“评论”:
<?php
/** This is some basic file info **/
?>
<?php This is the "file" proper" ?>
我需要阅读另一个文件中的第一条评论,但我完全忘记了如何获取/ **这是一些基本的文件信息** /作为字符串抱歉,但感谢adavance
答案 0 :(得分:13)
有一个token_get_all($code)
功能可用于此,它比你想象的更可靠。
这里有一些示例代码可以从文件中获取所有注释(它未经测试,但应该足以让您入门):
<?php
$source = file_get_contents( "file.php" );
$tokens = token_get_all( $source );
$comment = array(
T_COMMENT, // All comments since PHP5
T_ML_COMMENT, // Multiline comments PHP4 only
T_DOC_COMMENT // PHPDoc comments
);
foreach( $tokens as $token ) {
if( !in_array($token[0], $comment) )
continue;
// Do something with the comment
$txt = $token[1];
}
?>
答案 1 :(得分:1)
我想你也可以试试这个。
/**
* Return first doc comment found in this file.
*
* @return string
*/
function getFileCommentBlock($file_name)
{
$Comments = array_filter(
token_get_all( file_get_contents( $file_name ) ),function($entry) {
return $entry[0] == T_DOC_COMMENT;
}
);
$fileComment = array_shift( $Comments );
return $fileComment[1];
}
答案 2 :(得分:0)
这是你的意思吗?
$file_contents = '/**
sd
asdsa
das
sa
das
sa
a
ad**/';
preg_match('#/\*\*(.*)\*\*/#s', $file_contents, $matches);
var_dump($matches);
答案 3 :(得分:0)
使用此:
preg_match("/\/\*\*(.*?)\*\*\//", $file, $match);
$info = $match[1];
答案 4 :(得分:0)
function find_between($from,$to,$string){
$cstring = strstr($string, $from);
$newstring = substr(substr($cstring,0,strpos($cstring,$to)),1);
return $newstring;
}
然后只需致电:$comments = find_between('/\*\*','\*\*/',$myfileline);