2011-12-27 2 views
1

현재 문자열의 첫 번째 부분을 가져 오기 위해 strstr()을 사용하고 있습니다. 내 프로젝트는 3 대의 서버에서 실행됩니다. 1. 개발 서버 2. 테스트 서버 3. 라이브 서버strstr PHP 또는 대체 부분 문자열

않는 strstr()는 개발 서버 및 테스트 서버에서 잘 작동하지만 그 순간 나는 라이브는 않는 strstr 인쇄 아무것도 내 프로젝트를 배치하지 않습니다. 예를 들면 : 나는 아무것도 없어 내 세번째 서버에서 사과 :이 얻는 제 1 및 제 2 서버에서

//$product["titel2"] = "apple - &#60fruit&#60"; 
$product["titel2"]=(strstr($product["titel2"], "&#60domino"))?strstr($product["titel2"], "&#60fruit",true):$product["titel2"]; 
$str_product_titel = stripText(!empty($product["titel"]) && preg_match("/^<!--/",stripText($product["titel"]))==0?$product["titel"]."":$product["titel2"]); 

:

이 코드를 사용합니다.

마지막 부분을 제거하는 또 다른 방법이있어서 사과 만 먹을 수 있습니까? (예를 들어, apple - cake - & # 60fruit & # 60

과 같이 다른 문자열을 가질 변경이 있기 때문에 "-"하고 싶지 않습니다. (나는 과일도 같이 작성 알고 :> < 과일,하지만 striptags로, 또는 그것은 작동하지 않을 striptext)

그래서 누군가가이 작은 성가신 문제를 도와 줄 수 가 사전에 너무 감사

.?!
+0

내가가 폭발 생각 :

어쨌든, 당신은 같은 것을 사용하여 이전의 PHP 버전을 에뮬레이트 할 수 있습니다 . – ajreal

+1

구현을 그대로두면 원래 요구 사항은 정확히 무엇입니까? –

답변

1

보시 다시 herestrstr($haystack, $needle, $before_needle)의 마지막 매개 변수 (사용자가 첫 번째 n on 주석 행)은 PHP 5.3.0 이상에서만 사용할 수 있습니다. 세 가지 설정에서 PHP 버전을 확인하십시오. "-"당신이 배열에서 유일한 ** FIRST ** 요소를 최고의 반환 할 수있다

function my_strstr($haystack, $needle, $before_needle = false) { 
    if (!$before_needle) return strstr($haystack, $needle); 
    else return substr($haystack, 0, strpos($haystack, $needle)); 
} 
+0

이것은 완벽하게 작동했습니다! 정말 고맙습니다. 나는 결코 해결책을 찾지 못했을 것이라고 생각한다. – user993177

+0

다른 버전의 PHP로 작업 할 때는 공식 문서를 항상 확인해야합니다. PHP 5.2와 5.3 이후 많은 기능과 함수 매개 변수가 추가되었지만 모든 호스팅 서비스가 서버를 계속 업데이트하지는 않습니다 :) –