私は少しジレンマがあり、以下のコードがなぜ機能していないのか理解できないようです。phpで文字列内の文字列を検索していますか?
function find($haystack, $needles) {
$needle = array_map('trim', explode(",", $needles));
foreach ($needle as $key => $value) {
if (strpos($haystack, $value) !== false) {
return true;
}
}
return false;
}
私は、特定のページに表示されるべきかの要素を決定したり、特定の要素にクラスを追加する方法として、次のコードを使用しています。たとえば、私は$section = "home"
場合、クラス電流を追加する
<?php if (find($section, "home")) { ?> class="current"<?php } ?>
を使用します。私はではなく、選択
<?php if (!find($section, "contact")) { ?>
を上のすべてのページ上の要素を表示したい場合、私はまた、特定の例
<?php if (find($section, "about, media")) { ?>
ための複数のページ上の要素と同じを表示するには、この機能を使用することができますし、最後にそれができます例えば、複数の変数で使用することができます。
<?php if (find($page, "news") || find($section, "news")) { ?>
それは私が文の場合、失敗すると思われるページの選択から要素を削除するために、より複雑なを作成しようとする機能を使用するときにあれば、この例では、変数とif文は次のようになりますニュースセクションページやニュースの投稿ページ:
<?php if (!find($page, "news") || !find($section, "news")) { ?>
$page = "news"
と$section = "media news section"
$page = "post"
と$section = "media news post dynamic"
なぜ私はこれらの特定のステートメントではfalseを返さないのか分からない。どんな助けもありがたく、より良い方向性/方法を歓迎します。多くの感謝
私は、それがうまくいかない理由を見ていますが、この例の目的はどちらの変数セットでもfalseを返すことです。 if文を書き換えてfalseを返すにはどうすればよいですか? –
'if(!find($ page、" news ")&&!find($ section、" news ")){' –
ありがとうございました!とてもシンプルに見えますが、最初は私の頭の中を包み込むことができませんでした。 –