2016-03-31 6 views
0

1.List ArtikelWarnung: strpos() erwartet höchstens 3 Parameter, 23 in page.php auf Linie gegeben 9

if (strpos($page_name_ulter, 'dissertation' || $page_name_ulter, 'vendor' || $page_name_ulter, 'js' || $page_name_ulter, 'css' || $page_name_ulter, 'bootstrap' || $page_name_ulter, 'CI3Xmuqx6MsCFcJf2wod6s0P9Q' || $page_name_ulter, 'vendor' || $page_name_ulter, 'vendor' || $page_name_ulter, '=' || $page_name_ulter, 'essay?' || $page_name_ulter, 'input' || $page_name_ulter, 'main.js' || $page_name_ulter, 'main' || $page_name_ulter, 'php/js' || $page_name_ulter, '/' || $page_name_ulter, '.js' || $page_name_ulter, 'rating' || $page_name_ulter, 'intlTelInput' || $page_name_ulter, '.min' || $page_name_ulter, 'images') !== false) { return false; } 
+0

Es bedeutet genau, was es angibt. Es gibt 23 Parameter, die an die strpos-Funktion übergeben werden, es erwartet 3. Ihr Beispiel gibt zusätzlich an, dass Sie Ihren Code nicht richtig formatieren können, selbst wenn Sie ihn auf einer QA-Site veröffentlichen und Dub-Hilfe suchen. – Pred

Antwort

1

Da strpos() mit nicht funktionieren mehrere && OR || Bedingungen, so müssen Sie ), strpos und !== false wie folgt hinzufügen:

if (strpos($page_name_ulter, 'dissertation') !== false || strpos($page_name_ulter, 'vendor') !== false || strpos($page_name_ulter, 'js') !== false || strpos($page_name_ulter, 'css') !== false || strpos($page_name_ulter, 'bootstrap') !== false || strpos($page_name_ulter, 'CI3Xmuqx6MsCFcJf2wod6s0P9Q') !== false ||strpos($page_name_ulter, 'vendor') !== false || strpos($page_name_ulter, 'vendor') !== false || strpos($page_name_ulter, '=') !== false || strpos($page_name_ulter, 'essay?') !== false || strpos($page_name_ulter, 'input') !== false || strpos($page_name_ulter, 'main.js') !== false || strpos($page_name_ulter, 'main') !== false || strpos($page_name_ulter, 'php/js') !== false || strpos($page_name_ulter, '/') !== false || strpos($page_name_ulter, '.js') !== false || strpos($page_name_ulter, 'rating') !== false || strpos($page_name_ulter, 'intlTelInput') !== false || strpos($page_name_ulter, '.min') !== false || strpos($page_name_ulter, 'images') !== false) { return false; } 

Für weitere Informationen über Funktion: - http://php.net/manual/en/function.strpos.php

Hinweis: - Weitere bessere Lösung preg_match()

prüfen Handbuch für ihn verwendet: - http://php.net/manual/en/function.preg-match.php

1

Sie zu tun haben es wie dieses

if (strpos($page_name_ulter, 'dissertation') !== false || strpos($page_name_ulter, 'vendor')!== false and so on 
1

Sie müssen kennen die grundlegende sentance von strpos() Funktion.

strpos (string, finden, Start)

Aber in Ihrem Fall übergeben Sie nur Bedingung in strpos() Funktion. Das ist falsch ..

prüfen Dieses

if (strpos($page_name_ulter, 'dissertation') !== false || strpos($page_name_ulter, 'vendor') !== false || strpos($page_name_ulter, 'js') !== false || strpos($page_name_ulter, 'css') !== false || strpos($page_name_ulter, 'bootstrap') !== false || strpos($page_name_ulter, 'CI3Xmuqx6MsCFcJf2wod6s0P9Q') !== false ||strpos($page_name_ulter, 'vendor') !== false || strpos($page_name_ulter, 'vendor') !== false || strpos($page_name_ulter, '=') !== false || strpos($page_name_ulter, 'essay?') !== false || strpos($page_name_ulter, 'input') !== false || strpos($page_name_ulter, 'main.js') !== false || strpos($page_name_ulter, 'main') !== false || strpos($page_name_ulter, 'php/js') !== false || strpos($page_name_ulter, '/') !== false || strpos($page_name_ulter, '.js') !== false || strpos($page_name_ulter, 'rating') !== false || strpos($page_name_ulter, 'intlTelInput') !== false || strpos($page_name_ulter, '.min') !== false || strpos($page_name_ulter, 'images') !== false) { return false; } 
1

PHP strpos nicht mit mehreren funktioniert (OR/||) Zustand in Einzel strpos Funktion.

Wie pro docs: strpos Finden Sie die Position des ersten Auftretens eines Teil in einem String

Um es Sie benötigen funktioniert mehrere strpos mit IF Statement

if (
strpos($page_name_ulter,'dissertation') !== false || 
strpos($page_name_ulter,'vendor') !== false 
) { 

echo 'Founded'; 
} 
1

Als jemand anders erwähnt, sollten Sie wissen, was strpos erwartet, schauen Sie einfach hier: strpos Die folgenden Vorschläge sollen die vielen Funktionsaufrufe zu strpos

reduzieren

Da Sie so viele verschiedene Werte haben, würde ich andere Methoden vorschlagen. Wenn Ihre Zeichenfolge nur den Wert enthält, den Sie suchen, würde ich für ein Array gehen und die Bedingung könnte if (in_array($ultravariable, $arrayWithPossibleValues)) { } $arrayWithPossibleValues verwenden, sollte dann das Array halten Wach-Wert, den Sie suchen.

Wenn die Zeichenfolge, in der Sie suchen (die Ultra-Variable) hält tatsächlich mehr Daten, aber Sie müssen nur überprüfen, dass es mit Ihren verschiedenen Werten beginnt, dann würde ich für eine preg_match gehen.

if (preg_match("/^(value1|value2|value3)/", $ultravariable)) { } Hier würden Sie die möglichen Werte mit Wert1, Wert2 usw. ersetzen, und sie erinnern mit | zu trennen.

Hoffe, das hilft

Verwandte Themen