Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][HTML]Losowanie wyrazów z tekstu
shtoc
post
Post #1





Grupa: Zarejestrowani
Postów: 128
Pomógł: 0
Dołączył: 18.11.2008
Skąd: Polska

Ostrzeżenie: (10%)
X----


Mam takie pytanie.
  1. <form method="post">
  2. <textarea name="mix" cols="70" rows="20"> </textarea>
  3. <br />
  4. <input type="submit" value="MIX"/>
  5. </form>
  6.  
  7. <?php
  8.  
  9. echo $_POST['mix'];
  10. ?>


Czy darady z wpisanego w formularz tekstu wylosowac 3,4 slowa do ich poźniejszej zmiany??
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
Grzyw
post
Post #2





Grupa: Zarejestrowani
Postów: 561
Pomógł: 75
Dołączył: 19.08.2004
Skąd: Wrocław

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


Użyj funkcji:
implode" title="Zobacz w manualu PHP" target="_manual
array_rand" title="Zobacz w manualu PHP" target="_manual
i instrukcji:
foreach" title="Zobacz w manualu PHP" target="_manual
To wystarczy:)

Ten post edytował Grzyw 2.01.2009, 15:40:08
Go to the top of the page
+Quote Post
shtoc
post
Post #3





Grupa: Zarejestrowani
Postów: 128
Pomógł: 0
Dołączył: 18.11.2008
Skąd: Polska

Ostrzeżenie: (10%)
X----


Cytat(Grzyw @ 2.01.2009, 15:39:42 ) *


uzylem explode() bo chcialem stringa na tablice mam teraz tak
  1. <?php
  2. $tablica = explode(" ", $_POST['mix']);
  3.    print_r($tablica);
  4.    $losowe=array_rand($tablica,8);
  5.    echo '<br /><br />';
  6.    print_r($losowe);
  7. ?>


ale jak wyswietlam wylosowane to wyswietla mi nr wylosowany z tablicy a nie jej wartosc (slowo) (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)

ok juz mam

  1. <?php
  2. foreach($losowe as $tmp)
  3.    {
  4.    print_r("[$tmp]".$tablica[$tmp].'<br />');
  5.    }
  6. ?>


jako ze tyczy sie wszystko tego samego skryptu bede kontynuowal w tym samym!!

mam juz zrobione losowe wybieranie słow z tekstu teraz chcialbym zeby te slowa byly sprawdzana w bazie czy takie juz sa a jak sa to zeby byly wypisane. mam jednak problem!! robie cos takiego :

  1. <?php
  2. $pdo = new PDO('mysql:host=localhost;dbname=mikser', 'admin', 'haslo');
  3.    $pdo ->query("SET NAMES latin2");
  4.  
  5.  
  6.    $sql='select slowa from synonimy where id=4 ';
  7.    $stat = $pdo->query($sql);
  8.    
  9.    foreach($stat as $row)
  10.    {
  11.    echo($row['slowa'].'<br />');
  12.    }
  13. ?>


po id wszystko wyswietla wyswietla slowa
a ja bym chcial zeby wyswietlalo slowa jak w bazie jest dane slowo sprawdzane
nie wiem czy struktura bazy nie bedzie przeszkadzac mianowicie w kolumnie ze slowami sa one wpisywane tak: ABC;abecadlo;alfabet rozdzielone tylko srednikiem.
i jak bede mial w zmiennej np. ABC to sprawdzam czy ABC jest w bazie jak tak to wyswietlam wszstkie synonimy ABC.

nie wiem jak skastruowac zapytanie sql zeby to wyciagalo
probowalem:
select slowa from synonimy where slowa=slowo
select slowa from synonimy where `slowa`=slowo
select slowa from synonimy where slowa=$zmienna_ze_słowem

Ten post edytował shtoc 2.01.2009, 16:33:20
Go to the top of the page
+Quote Post
piotrooo89
post
Post #4


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




ja bym się na Twoim miejscu zainteresował: full text search
Go to the top of the page
+Quote Post
shtoc
post
Post #5





Grupa: Zarejestrowani
Postów: 128
Pomógł: 0
Dołączył: 18.11.2008
Skąd: Polska

Ostrzeżenie: (10%)
X----


pogrzebalem jeszcze tu i tam i teraz mam cos takiego :

  1. <?php
  2. $pdo = new PDO('mysql:host=localhost;dbname=mikser', 'admin', 'xxx');
  3.    $pdo ->query(&#092;"SET NAMES latin2\");
  4.    
  5.    //echo $_POST['mix'];
  6.  
  7.    $tablica = explode(&#092;" \", $_POST['mix']);
  8.    print_r($tablica);
  9.    $losowe=array_rand($tablica,2);
  10.    echo '
  11.  
  12. ';
  13.  
  14.    foreach($losowe as $tmp)
  15.    {
  16.    print_r(&#092;"[$tmp]\".$tablica[$tmp].'
  17. ');
  18.  
  19.    $sql=\"  SELECT * FROM synonimy WHERE slowa REGEXP '$tablica[$tmp]'\";
  20.    $stat = $pdo->query($sql);
  21.    foreach($stat as $row)
  22.    {
  23.    echo($row['slowa'].'
  24. );
  25.    }
  26.  
  27.    }
  28. ?>


wrzucem sobie tekst rozbija mi go na slowa w tablicy losuje sobie slowa i sprawdzam czy sa w bazie jak sa to wyswietlam synonimy tego slowa
najgorsze jest to ze jak jest krotkie slowo to czasami jest zagnierzdzone w innych slowach jak bym wylosowal "W" to wyswetli mi 3/4 bazy ze to sa synonimy slowa "W" a drugi problem to jak slowo jest synonimem wielu synonimow to tez wyswietla wszystkie rekordy w bazie gdzie jest to slowo!!

jeszcze jakies rady (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)

idea tego skryptu ma byc cos podobnego jak w poscie
http://forum.php.pl/index.php?showtopic=67...mp;#entry354061

nie wiem czy autor robil to samo co ja chcem zrobic

Czyli wrzucenie tekstu wybranie z niego słow zastąpienie ich synonimami i wygenerowanie nowego tekstu.

moze ktos robil takie narzedzie i moze mnie naprowadzic??

________________________________________________________________________________
__

Mam problem napisalem kod
  1. <?php
  2.  
  3.    $pdo = new PDO('mysql:host=localhost;dbname=mikser', 'admin', 'xxx');
  4.    $pdo ->query("SET NAMES latin2");
  5.  
  6.    $tablica = explode(" ", $_POST['mix']);
  7.  
  8.    foreach($tablica as $tmp)
  9.    {
  10.       $dlugosc=strlen ($tmp);
  11.       if ($dlugosc >= 4)
  12.       {
  13.           //echo $tmp.$dlugosc.'<br />';
  14.           $sql="  SELECT * FROM synonimy WHERE slowa REGEXP '$tmp'";
  15.           $stat = $pdo->query($sql);
  16.    
  17.            foreach($stat as $row)
  18.             {                            
  19.                $synonim=$row['slowa'];              
  20.                $nowa=str_replace(';', '|',$synonim);
  21.                                                            
  22.             }
  23.               echo '<br />'."[$tmp]".$nowa.'<br />';   // synonimy dla slowa
  24.          
  25.               print_r($tmp).'<br />';        //slowo
  26.           }
  27.    else ;
  28.  
  29.    unset ($nowa,$synonim);
  30.    }
  31.  
  32.    ?>


mam takie pytanie jak mam podnieminc slow w zmiennej $tmp na synonimy znajdujace sie w $nowa
i zwrocic tekst z synonimami

to jest jakis tekst

to jest synonim|synonim|synonim tekst

w formie podanej powyzej (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
prosze o pomoc

Ten post edytował shtoc 3.01.2009, 14:41:49
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 5.10.2025 - 02:27