PHP에서 특정 하위 문자열 다음에 모든 것을 제거하는 방법이 궁금합니다.
전의:
Posted On April 6th By Some Dude
하위 문자열 “By”를 포함하여 그 이후의 모든 텍스트를 제거하도록하고 싶습니다.
감사
답변
$variable = substr($variable, 0, strpos($variable, "By"));
평범한 영어로 : 시작 부분에서 시작하여 처음에 델리 미네 이터가있는 위치에서 끝나는 부분을 알려주세요.
답변
PHP 5.3 이상을 사용하는 경우 strstr () 의 $ before_needle 플래그를 살펴보십시오
$s = 'Posted On April 6th By Some Dude';
echo strstr($s, 'By', true);
답변
사용 방법 explode
:
$input = 'Posted On April 6th By Some Dude';
$result = explode(' By',$input);
return $result[0];
장점 :
- 매우 읽기 쉽고 이해하기
- 나누기 문자열 (이 예에서는 “By”)이 없으면 전체 문자열을 반환합니다. (다른 답변과 마찬가지로 FALSE를 반환하지 않습니다.)
- 정규식이 필요하지 않습니다.
- “일반적인 표현은 특히 매운 매운 소스와 비슷합니다. 적당히 사용하고 적절한 경우에만 제한을 두어야합니다.”
- 정규식은 폭발보다 느립니다 (preg_split이 다른 답변에서 제안 된 다른 정규식 옵션과 속도가 비슷하다고 가정합니다)
- 필요한 경우 문자열의 두 번째 부분도 사용할 수있게합니다 ( 이 예에서는
$result[1]
반환Some Dude
).
답변
당신은 할 수 있습니다 :
$posted = preg_replace('/ By.*/', '', $posted);
echo $posted;
답변
한 가지 방법은 다음과 같습니다.
$str = 'Posted On April 6th By Some Dude';
echo strtok($str, 'By'); // Posted On April 6th
답변
이 시도.
function strip_after_string($str,$char)
{
$pos=strpos($str,$char);
if ($pos!==false)
{
//$char was found, so return everything up to it.
return substr($str,0,$pos);
}
else
{
//this will return the original string if $char is not found. if you wish to return a blank string when not found, just change $str to ''
return $str;
}
}
용법:
<?php
//returns Apples
$clean_string= strip_after_string ("Apples, Oranges, Banannas",",");
?>
답변
Austin의 답변은 귀하의 사례에 적합합니다.
더 일반적으로 분할하는 하위 문자열이 문자열마다 다를 수있는 경우 정규식 함수 를 살펴 보는 것이 좋습니다.
$ variable = preg_replace ( '/ By. * /', '', $ variable);