Inlocuire text dintr un array , string

Ai o întrebare legată de PHP? Incercăm să îi găsim soluţie. Sau poate doar vrei să publici un cod interesant.

Moderatori: Zamolxe, Moderatori

PHP_Junior
PHPRomania Supporter
Mesaje: 23
Membru din: Joi Feb 08, 2007 4:59 pm

Inlocuire text dintr un array , string

Mesajde PHP_Junior » Vin Ian 22, 2010 12:33 am

nu stiu cat de bine e pus in titlu dar , aici sper ca explic mai bine :

Iata cum sta treaba:

Este vorba de un site care poseda un "dictionar" de cuvinte, problema este in felul urmator :

Exista doua tabele:
1. tabelul de cuvinte
2. tabelul de articole

Problema : inlocuirea cuvintelor din articol care sunt in dictionar , cu aceleasi cuvinte dar care sa aiba un link catre un alt articol, sper ca intelegeti ce vreau sa zic :-?

Practic se cere formarea unui link pe cuvintele din articol care exista in dictionar .

Am incercat timp de doua zile sa fac un cod , dar nu am reusit si nu mi dau seama ce are .. am ajuns sa-mi fie sila de array uri :)) la cat le am tocat.

Orice ajutor , e bine venit , daca doriti o sa public o toate codurile mele defecte :)) dar nu cred ca va vor ajuta cu nimic de aceea nu le pun decat la cerere



PHP_Junior
PHPRomania Supporter
Mesaje: 23
Membru din: Joi Feb 08, 2007 4:59 pm

Mesajde PHP_Junior » Vin Ian 22, 2010 2:09 am

iata si un cod :

Cod: Selectaţi tot

$ex_articol  = explode(" ",$articol);
                        $numar_elem  = str_word_count($articol,1);
                   //------------------------formare array-----------------------------------------
                       for($i=0;$i<mysql_num_rows($rezultat_d);$i++)
                       {
                        $cuvant   = mysql_result($rezultat_d,$i,"cuvant");
                        $ar_cuv[] = $cuvant;      
                       }
                  
                   for($k=0;$k<count($ex_articol);$k++)
                  {
                    for($j=0;$j<count($ar_cuv);$j++)
                     {
                       if($ex_articol[$k]==$ar_cuv[$j])
                      {
                         $ex_articol[$k] = "add";
                      }
                     }
                  }                  
                         print_r($ex_articol);

Bamselu
Average Member
Mesaje: 55
Membru din: Mie Oct 29, 2008 11:13 pm
Localitate: Bucuresti
Contact:

Mesajde Bamselu » Vin Ian 22, 2010 5:47 am

Personal n-am inteles ce vrea sa reprezinte codul ala.

In rest.... ca sa poata cineva sa iti dea o rezolvare la "problema" tre sa spui care e structura tabelului de cuvinte.

tanatos
Senior Member
Mesaje: 269
Membru din: Vin Iun 06, 2008 8:01 pm
Localitate: Iasi
Contact:

Mesajde tanatos » Vin Ian 22, 2010 10:44 am

eu vad treaba in felul urmator :
presupun ca tabela cu cuvinte (dictionarul) arata in felul urmator :
id , cuvant , descriere

eu as reface codul tau asa :

Cod: Selectaţi tot

<?php
   $cuvinte = array();
   $result = mysql_query("SELECT * FROM dictionar");
   if(mysql_num_rows($result) > 0)
   {
     while($row = mysql_fetch_array($result))
     {
        $cuvinte[] = array("cuvant" => $row['cuvant'] , "id" => $row['id']);
     }
   }

   //acum presupun ca ai intr-o variabila $continut datele in care vrei sa creezi linkurile (cu pagina dictionar.php , fiind cea care afiseaza descrierile cuvintelor , luand ca parametru id-ul cuvantului din baza de date :
   foreach($cuvinte as $i => $value)
   {
      $continut = str_ireplace($value['cuvant'],'<a href="dictionar.php?id='.$value['id'].'">'.$value['cuvant'].'</a>',$continut);
   }

   echo $continut;
?>


Înapoi la “Cod PHP”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 33 vizitatori