我从PDF文件中提取了文本,并且一些文本在单词之间有额外的空格.
你的水和废水声明
我写了一个函数来从上面的文本中删除多余的空格.
function removeExtraWhitespace($val) {
$nval = "";
for($i = 0; $i < strlen($val); $i++) {
if($val[$i] != " ") {
$nval .= $val[$i];
}
else if((isset($val[$i-2]) && $val[$i-2] != " ") || (isset($val[$i+2]) && $val[$i+2] != " ")) {
$nval .= $val[$i];
}
}
return $nval;
}
Run Code Online (Sandbox Code Playgroud)
哪个会输出:
你的水和废水声明
我知道这个功能在所有情况下都不会起作用.如果文本有一个有效的1个字母的单词,如'a',那么它将失败,或者如果只有一个单词的一部分有额外的空格.
我需要从字符串中删除空格
将上述文本放入我的函数时,它将输出:
我想从字符串中删除空格
有没有办法制作一个可以处理所有可能文本的函数?
小智 1
拼写纠正是一项艰苦的工作。我认为你应该使用在线拼写纠正网站。你可以这样做:
function curl($post)
{
$user_agent = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; tr; rv:1.9.0.6) Gecko/2009011913 Firefox/3.0.6';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://orthographe.reverso.net/RISpellerWS/RestSpeller.svc/v1/CheckSpellingAsXml/language=eng?outputFormat=json&doReplacements=false&interfLang=en&dictionary=both&spellOrigin=interactive&includeSpellCheckUnits=true&includeExtraInfo=true&isStandaloneSpeller=true');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Created: 01/01/0001 00:00:00',
'Referer: http://www.reverso.net/spell-checker/english-spelling-grammar/',
'Username: OnlineSpellerWS'
));
$icerik = curl_exec($ch);
curl_close($ch);
return $icerik;
}
$response = json_decode(curl('Ineed to remove whitespaces froma string'));
var_dump($response->AutoCorrectedText);
Run Code Online (Sandbox Code Playgroud)
这只是为了想法。我确信有提供 API 的拼写纠正网站。