PO::unpoify()
最后更新于:2021-11-25 21:28:38
PO::unpoify( string$string)Gives back the original string from a PO-formatted string
参数
- $string
-
(string) (Required) PO-formatted string
响应
(string) enascaped string
源文件
文件: gc-includes/pomo/po.php
public static function unpoify( $string ) {
$escapes = array(
't' => "t",
'n' => "n",
'r' => "r",
'\' => '\',
);
$lines = array_map( 'trim', explode( "n", $string ) );
$lines = array_map( array( 'PO', 'trim_quotes' ), $lines );
$unpoified = '';
$previous_is_backslash = false;
foreach ( $lines as $line ) {
preg_match_all( '/./u', $line, $chars );
$chars = $chars[0];
foreach ( $chars as $char ) {
if ( ! $previous_is_backslash ) {
if ( '\' === $char ) {
$previous_is_backslash = true;
} else {
$unpoified .= $char;
}
} else {
$previous_is_backslash = false;
$unpoified .= isset( $escapes[ $char ] ) ? $escapes[ $char ] : $char;
}
}
}
// Standardise the line endings on imported content, technically PO files shouldn't contain r.
$unpoified = str_replace( array( "rn", "r" ), "n", $unpoified );
return $unpoified;
}