2011-12-27 9 views
1

現時点では、文字列の最初の部分を取得するためにstrstr()を使用しています。 3つのサーバーでプロジェクトを実行しています。 1.開発サーバー 2.テストサーバー 3.ライブサーバーstrstr PHPまたは別の部分文字列

はstrstr()が開発サーバーおよびテストサーバー上で正常に動作しますが、今は、私は私のプロジェクトが住んでいる場所、はstrstrは何も出力しません。例えば:私は何も持っていない私の第三のサーバ上で リンゴ :私はこれを取得第一及び第二のサーバ上で

//$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

は「 - 」が最適です、あなたは、アレイ内のみ** FIRST **要素を返すことができます。 。 – ajreal

+1

実装を脇に置いて、元の要件は何ですか? –

答えて

1

ご覧のとおり、strstr($haystack, $needle, $before_needle)の最後のパラメータ(最初のnで使用します)は、hereです。コメント行)は、PHP 5.3.0以降でのみ利用可能です。あなたの3つの設定であなたのPHPのバージョンを確認してください。

とにかく、あなたが何か使用して、古いPHPのバージョンでそれをエミュレートすることができます:私は爆発すると思う

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以降、多くの機能と機能のパラメータが追加されていますが、すべてのホスティングサービスでサーバが更新されるわけではありません:) –

関連する問題