: 및 검색 구문 후 5 개 단어 (단지 Y의이 단어가있는 경우 또는 Y) 5 개 단어 검색 구문 전에PHP가 검색 구문 주위에 10 개 단어를 얻을 나는 다음을 수행하려고
잡아 (또는 Y 텍스트 블록 (I 단어를 말할 때 내가 텍스트의 블록에 어떤 단어 나 숫자를 의미)
예를 들어
텍스트의 블록에서 거기에만 Y 단어)가있는 경우 : 스택에 "에 오신 것을 환영합니다 오버플로! 사용자 이름과 이메일을 설정하려면 사용자 페이지를 방문하십시오. " 당신이 검색 할 수 있다면
"를 방문하여"그것은 반환 : "스택 오버플로에 오신 것을 환영합니다 설정 사용자 페이지를 방문하여"
나는이
$preg_safe = str_replace(" ", "\s", preg_quote($search));
$pattern = "/(\w*\S\s+){0,8}\S*\b($preg_safe)\b\S*(\s\S+){0,8}/ix";
if(preg_match_all($pattern, $full_text, $matches))
{
$result = str_replace(strtolower($search), "<span class='searched-for'>$search</span>", strtolower($matches[0][0]));
}
else
{
$result = false;
}
그리고 그것을 사용하려고했습니다 검색 구문이 영어 인 경우 작동하지만 다른 언어에서도 작동해야합니다. 예를 들어 히브리어 검색 구문에서는 작동하지 않습니다.
나는에 패턴을 변경 시도했다 :
$pattern = "(*UTF8)/(\w*\S\s+){0,8}\S*\b($preg_safe)\b\S*(\s\S+){0,8}/i";
그러나 그것은 작동하지 않았다.
다른 언어로 작동하게하려면 어떻게해야합니까?
////////////////// 편집 ////////// enrico.bacis으로
제안 - 내가 패턴을 변경했습니다 :
$pattern = "/(\w\p{Hebrew}*\S\s+){0,20}\S*\b($preg_safe)\b\S*(\s\S+){0,20}/ixu";
가 지금은 영어와 히브리어 검색 문구 작동하지만 (예를 들어 ') 특수 문자가있는 경우 그 결과의 텍스트가 절단되고있다.
특수 문자가 포함되어 있어도 패턴이 검색 구문 주위에 텍스트를 반환하도록하려면 어떻게해야합니까?
히브리어 및 영어로 작동해야하며 다른 언어도 있습니다. – Shani1351
더 잘 설명 했으므로 지금 확인하십시오. –
답장을 보내 주셔서 감사합니다.원래의 질문 – Shani1351