Проставить точки в конце строки

Статус
В этой теме нельзя размещать новые ответы.

blackspy

Постоялец
Регистрация
11 Мар 2007
Сообщения
426
Реакции
144
Нужен скриптик который поставить точку в конце строки, точка не должна ставится если строка заканчивается на . ... ! ? …
PHP:
…
PHP:
…
 
Нужен скриптик который поставить точку в конце строки, точка не должна ставится если строка заканчивается на . ... ! ? …
PHP:
…
PHP:
сваял на быструю руку, так что возможны ошибки:ah:

PHP:
function add_point($text){
	
	$len_text = strlen($text);
	$end_z = $text[$len_text-1];

	$array = array('.', '!', '?');
	
	if(in_array($end_z, $array)){
		return $text;
	}
	
	$html_arr = array('…');
	
	foreach($html_arr as $str){
		$pos = 	strrpos($text, $str);
	 	if(($pos + strlen($str)) == $len_text){
			return $text;
		}
	}
	$text .= '.';
	return $text;
}


echo add_point("Текст текст текст")."\n";
echo add_point("Текст текст текст!")."\n";
echo add_point("Текст …  текст текст…")."\n";
 
В пхп я 0
Я думал будет скриптик, который я запускаю в дире со скриптом файлик input.txt получаем output.txt файлик 5 мг.
 
Это по идее скрипт - выбираешь файл > оно тебе создаст в той же папке файл output.txt с добавленными точками.

(не отлаживал скрипт)

PHP:
<?php
function addPoint( &$line )
{
    $last = $line{ strlen( $line ) - 1 };
    if ( ! in_array( $last, array( '.', '?', '!' ) ) )
    {
        $last .= '.';
    }
}

if ( ! empty( $_FILES ) )
{
    $data = $_FILES[ 'f' ];
    $tmp = $data[ 'tmp_name' ];
    if ( file_exists( $tmp ) )
    {
        if ( $data[ 'type' ] != 'text/plain' )
        {
            die( 'Incorrect file. <a href="'.getenv('REQUEST_URI').'">Retry</a>' );
        }

        $lines = array_map( 'trim', file( $tmp ) );
        $lines = array_map( 'addPoint', $lines );
        $content = join( "\n", $lines );
        
        // Output fname here
        $outName = dirname(__FILE__).'/output.txt';
        move_uploaded_file( $content , $outName );
    }
}
?>
<form method="post">
<input type="file" name="f" />
</form>
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху