Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> przeszukiwanie wprowadzonego wyrażenia
AdamT
post 9.01.2006, 22:42:25
Post #1





Grupa: Zarejestrowani
Postów: 54
Pomógł: 0
Dołączył: 22.01.2004
Skąd: LDZ

Ostrzeżenie: (0%)
-----


Witam!

Mam takie pytanie, jak przeszukać wprowadzone wyrażenie pod kontem wyszukania pojedynczych znaków ?

Konkrtenie znalazłem coś takiego

  1. <center>
  2. <form action="<? echo $PHP_SELF; ?>" method="post">
  3. Prosze wprowadziŠ wyra┐enie do analizy :<br><input type=text name=zdanie><br>
  4. <input type=submit name=submit value=wyslij>
  5. </form> 
  6.  
  7. <?php
  8. echo ("Wpisa│es :");
  9. echo ($zdanie);
  10. if (strstr($zdanie, "v")!==False)
  11. {
  12. echo ("<br><br>Zdanie <b><font color="green">zawiera</b></font> operatory logiczne, idz do kroku 2 ");
  13. }
  14. else
  15. {
  16. echo ("n<br><br>Zdanie <b><font color="red">nie zawiera</b></font> operatorow logicznych ");
  17. }
  18. ?>
  19. </center>


Kiedy wpiszemy wyrażenie ze znakiem v to działa ale jak dodac do tego jeszcze "&" ">" i "=" ?

jak wpiszemy "v&>=" to bedzie dzialac ale tylko jezeli pojawi sie ciag dokladnie taki v&>= a ja potrzebuje napisac zeby warunek byl spelniony jak przynajmniej jedno z nich jest w wyrazeniu

Pomozcie
Dzieki


--------------------
Hardware : <span style="font-weight: bold;">OrangePi+ 2E | 2GB RAM | HDD: 1TB </span>
Software : <span style="font-weight: bold;">Debian GNU/Linux 8 (jessie) 3.4.113-sun8i </span>
Go to the top of the page
+Quote Post
gladiror
post 10.01.2006, 01:19:14
Post #2





Grupa: Zarejestrowani
Postów: 398
Pomógł: 0
Dołączył: 13.07.2005
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Spróbuj może tak:

  1. <?php
  2.  
  3. if (strstr($zdanie, "v" or ">" or "=")!==False)
  4.  
  5. ?>


--------------------
"Państwo to ja" Ludwik XIV
"Wróg zaatakuje to co kochasz" Ojciec Chrzestny
"Wszystko powinno być proste jak to tylko możliwe, ale nie prostsze..." A. Einstein
"Wyobraźnia jest ważniejsza niż wiedza" Albert Einstein
"Nieprawda powtarzana wielokrotnie staje się prawdą"
Go to the top of the page
+Quote Post
AdamT
post 10.01.2006, 09:22:37
Post #3





Grupa: Zarejestrowani
Postów: 54
Pomógł: 0
Dołączył: 22.01.2004
Skąd: LDZ

Ostrzeżenie: (0%)
-----


Nie działą juz próbowałem... pozatym z tą funkcją
  1. <?php
  2. ?>
nie da rady chyba przeszukać pojedynczych znaków tylko ciągi sad.gif

tak mi się wydaje :/


--------------------
Hardware : <span style="font-weight: bold;">OrangePi+ 2E | 2GB RAM | HDD: 1TB </span>
Software : <span style="font-weight: bold;">Debian GNU/Linux 8 (jessie) 3.4.113-sun8i </span>
Go to the top of the page
+Quote Post
mike
post 10.01.2006, 09:24:01
Post #4





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

Ostrzeżenie: (0%)
-----


Tak dla uściślenia: jeden znak jest ciągiem o długości jeden, więc jaki problem?
Go to the top of the page
+Quote Post
dtb
post 10.01.2006, 09:46:45
Post #5





Grupa: Zarejestrowani
Postów: 476
Pomógł: 1
Dołączył: 5.11.2005
Skąd: Bieruń city

Ostrzeżenie: (0%)
-----


gladiror: czy ty wiesz jak dziala operator OR? wyrazenie ("v" or ">" or "=") zwroci true, a my nie chcemy przecież tego!
  1. <?php
  2. function szukaj ($text, $znaki)
  3. {
  4. for ($i=0; $i<strlen ($znaki); $i++)
  5. {
  6. if (strpos($text, $znaki[$i]) !== false)
  7. return true;
  8. }
  9. return false;
  10. }
  11. if (szukaj ($zdanie, 'v&>='));
  12. ?>


Ten post edytował dtb 10.01.2006, 09:47:41


--------------------
Go to the top of the page
+Quote Post
AdamT
post 10.01.2006, 09:51:15
Post #6





Grupa: Zarejestrowani
Postów: 54
Pomógł: 0
Dołączył: 22.01.2004
Skąd: LDZ

Ostrzeżenie: (0%)
-----


Cytat(mike_mech @ 2006-01-10 10:24:01)
Tak dla uściślenia: jeden znak jest ciągiem o długości jeden, więc jaki problem?

no to w sumie nie ma problemu gdyyby nie to
ze "v" or "g" or "c" nie dziala and tez nie :/


--------------------
Hardware : <span style="font-weight: bold;">OrangePi+ 2E | 2GB RAM | HDD: 1TB </span>
Software : <span style="font-weight: bold;">Debian GNU/Linux 8 (jessie) 3.4.113-sun8i </span>
Go to the top of the page
+Quote Post
dtb
post 10.01.2006, 10:02:53
Post #7





Grupa: Zarejestrowani
Postów: 476
Pomógł: 1
Dołączył: 5.11.2005
Skąd: Bieruń city

Ostrzeżenie: (0%)
-----


Wyjasnie krok po kroku dlaczego nie dziala twoj sposob:

kazdy znak zwraca prawde czyli taki kod:
"v" or ">" or "="
to jest to samo co to:
true or true or true
a takie wyrazenie zwroci:
true

kod:
strstr($zdanie, "v" or ">" or "=")
poszuka wtedy:
strstr($zdanie, true)
a to nie jest zadany efekt.

Ten post edytował dtb 10.01.2006, 10:03:20


--------------------
Go to the top of the page
+Quote Post
gladiror
post 10.01.2006, 10:57:59
Post #8





Grupa: Zarejestrowani
Postów: 398
Pomógł: 0
Dołączył: 13.07.2005
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Czyli w końcu chodzi o to, żeby sprawdzało czy jest króryśkolwiek z poniższych znaków w ciągu? Jeżeli jest to zwraca wartość true (("<br><br>Zdanie <b><font color=\"green\">zawiera</b></font> operatory logiczne, idz do kroku 2 ), a jak nie ma to false (\n<br><br>Zdanie <b><font color=\"red\">nie zawiera</b></font> operatorow logicznych )?


--------------------
"Państwo to ja" Ludwik XIV
"Wróg zaatakuje to co kochasz" Ojciec Chrzestny
"Wszystko powinno być proste jak to tylko możliwe, ale nie prostsze..." A. Einstein
"Wyobraźnia jest ważniejsza niż wiedza" Albert Einstein
"Nieprawda powtarzana wielokrotnie staje się prawdą"
Go to the top of the page
+Quote Post
R4v3N
post 10.01.2006, 11:48:51
Post #9





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 7.05.2004
Skąd: Pultusk

Ostrzeżenie: (0%)
-----


  1. <?php
  2.  
  3. $zdanie = "(p ^ q) => (p v q) <=> q";
  4. $op_tab = array('=>','<=>', '^','v'); // tablica operatorow logicznych od lewej: wynika z, rownowazne, wieksze, mniejsze
    , iloczyn, alternatywa
  5. $ilosc = 0;
  6.  
  7. for($i=0;$i<count($op_tab);$i++) {
  8. if(strpos($zdanie, $op_tab[$i])) $ilosc++;
  9. }
  10.  
  11. printf("W zdaniu '<b>%s</b>' wystepuje '<b>%s</b>' operatorow", $zdanie, $ilosc);
  12.  
  13. ?>


Za błedy przepraszam pisane z palca tongue.gif


pzdr.
Go to the top of the page
+Quote Post
AdamT
post 11.01.2006, 00:20:52
Post #10





Grupa: Zarejestrowani
Postów: 54
Pomógł: 0
Dołączył: 22.01.2004
Skąd: LDZ

Ostrzeżenie: (0%)
-----


I ciagle ten sam problem :/

  1. <?php
  2. echo $zdanie;
  3. $o2_tab = array('v','&','>','='); // alternatywa, koniunkcja, implikacja, rownosc 
  4. $index=0;
  5. if (strpos($zdanie, $o2_tab[$index])!==False)
  6. echo ("<br><br>Zdanie <b><font color="green">zawiera</b></font> operatory logiczne, idz do kroku 2 ");
  7. else
  8. echo ("n<br><br>Zdanie <b><font color="red">nie zawiera</b></font> operatorow logicznych ");
  9. ?>


Wyswietla sie ze sa operatory logiczne ale tylko jak sa wszystkie :/
A ja chce zeby jak PRZYNAJMNIEJ jeden z nich bedzie to sie ma wyswietlic echo1


--------------------
Hardware : <span style="font-weight: bold;">OrangePi+ 2E | 2GB RAM | HDD: 1TB </span>
Software : <span style="font-weight: bold;">Debian GNU/Linux 8 (jessie) 3.4.113-sun8i </span>
Go to the top of the page
+Quote Post
R4v3N
post 11.01.2006, 07:25:44
Post #11





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 7.05.2004
Skąd: Pultusk

Ostrzeżenie: (0%)
-----


a widziales moj kod ?

bo wnioskuje ze nie.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 31.07.2025 - 07:21