←  Problemy

AMXX.pl: Support AMX Mod X i SourceMod

»

PHP
[ROZWIĄZANE] Problem z wyszukiwaniem textu

Zablokowany

  • +
  • -
mimo114 - zdjęcie mimo114 24.01.2013

Witam.
Mam dzisiaj pewien problem z takim oto skryptem:
Spoiler

no i niestety kod ten działa tylko 1 raz tzn. że prawdza tak jakby tylko literkę a ale bcd już nie.
Z góry dziekuje
Odpowiedz

  • +
  • -
DarkGL - zdjęcie DarkGL 24.01.2013

$acces = explode(" ",$acces1);

nigdzie nie deklarujesz zmiennej acces1
Użytkownik DarkGL edytował ten post 24.01.2013 17:15
Odpowiedz

  • +
  • -
mimo114 - zdjęcie mimo114 24.01.2013

bo ogólnie to jest funkcja i to jest pobierane w funkcji
Odpowiedz

  • +
  • -
DarkGL - zdjęcie DarkGL 24.01.2013

powiem inaczej poproszę cały kod i jak go używasz
Odpowiedz

  • +
  • -
mimo114 - zdjęcie mimo114 24.01.2013

Function checkacces($accesnow="",$accesb="")
{
$ident=0;
$kt=0;
$wynik;
$accesaray=explode(" ",$accesb);
foreach($accesaray as $value)
{

if(strpos($accesnow,''.$value.'')!== 0)
{
$wynik[$kt]=$ident;
$kt++;
echo $value."</br>";
}
$ident++;
}
foreach($wynik as $val)
{
$value = $accesaray[$val];
echo "Wynik :".$value."</br>";
$wynikend= $wynikend.$value;
}
return $wynikend;
}

Tak wygląda funkcja
checkacces('itb',"b i t");
Odpowiedz

  • +
  • -
Gh0st - zdjęcie Gh0st 25.01.2013

Proszę, Nie wiem czy o to ci chodziło

<?php
function checkacces($acces, $need)
{
// Sprawdzamy czy flagi zostaly podane
if( $acces == '' )
return false;
// sprawdzamy czy potrzebne flagi zostaly podane...
if( $need == '' )
return true;

// Ustawiamy true
$is = true;
// Jedziemy po string need
for($i = 0; $i < strlen($need); $i++){
// sprawdzamy czy taki znak z need wystepuje w acces
if( ! strpos($acces, $need[$i]) === 0 ) // Jesli nie to ustawiamy $is na false ( czyli juz nie ma jednej flagi i zwrocimy false )
$is = false;
}
return $is;
}
checkacces('abc', 'ab');



@speedkil.
Tak, bo jesli nie ma flag $need ( flag ktore maja byc ) to czemu mialo by zwroic false jesli logicznie wszystkie flagi sa w stringu acces? :D
speedkill (25.01.2013 20:15):
Na pewno przy drugim warunku ma być return true ?
speedkill (25.01.2013 20:23):
A nie lepiej było by dodać informację, że brakuje flag ;) ?
Odpowiedz

  • +
  • -
mimo114 - zdjęcie mimo114 25.01.2013

Mam takie pytanko

$need[$i]
czy w taki sposób otrzymam tylko literę o tym numerku?
Odpowiedz

  • +
  • -
Gh0st - zdjęcie Gh0st 25.01.2013

Tak
Np

$string = "abc";
echo $string[0]; // wyswietli "a"
Odpowiedz

  • +
  • -
mimo114 - zdjęcie mimo114 26.01.2013

if( ! strpos($acces, $need[$i]) === 0 )
a że tak zapytam to co robi "!" przed `strpos` bo chyba go nie neguje?
Odpowiedz

  • +
  • -
Gh0st - zdjęcie Gh0st 26.01.2013

samo
strpos($acces, $need[$i]) === 0

Sprawdza czy znak z argumentu drugiego istnieje w argumencie pierwszym,
jesli dodamy z przodu "!" if zostanie wywołana tylko wtedy kiedy on nie istnieje :)
Odpowiedz

  • +
  • -
mimo114 - zdjęcie mimo114 28.01.2013

Twój skrypt nie działa.
echo checkacces('abcde', 'w')
Zwraca 1.
echo checkacces('abcde', 'c');
Zwraca 1.
Odpowiedz

  • +
  • -
Gh0st - zdjęcie Gh0st 28.01.2013

zamień
if( ! strpos($acces, $need[$i]) === 0 )

na
if(stristr($acces, $need[$i]) === FALSE)


I bedzie dzialac :)
Odpowiedz

  • +
  • -
mimo114 - zdjęcie mimo114 31.01.2013

ok thx
Do zamknięcia
Użytkownik mimo114 edytował ten post 31.01.2013 12:50
Odpowiedz

  • +
  • -
dasiek - zdjęcie dasiek 31.01.2013

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Pomoc udzielona

Jeśli się z tym nie zgadzasz, Dołączona grafika raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


Z pozdrowieniami,
Zespół AMXX.PL
Odpowiedz
Zablokowany