andris_b Posted March 10, 2004 Report Share Posted March 10, 2004 Paliidziet luudzu ar ideju!!! Kaa var vienkaarshaak aizvietot piemeeram smaidinju :) ar :) utt. Varbuut php pastaav kaada funkcija vai varbuut kaadam ir padomaa kaads skripts!!! Buushu pateiciigs ja kaads atbildees uz sho jautaajumu!!! Link to comment Share on other sites More sharing options...
Klez Posted March 11, 2004 Report Share Posted March 11, 2004 shitaj pashaa forumaa pamnjem add reply ien tad labo klikshi un view source ta tu arii redzeesi kaa tas straadaa. jeb ar php to var shitaa: $s = "images/smaidinsh.gif"; //$s buus smaidinja bildes celsh $text = str_replace(":)",$s,$text); echo $text; rezultaataa :) vietaa paraadiisies bildiite smaidinsh.gif :) Link to comment Share on other sites More sharing options...
sviesc Posted March 11, 2004 Report Share Posted March 11, 2004 es gan ieteiktu šādu te jau konkrēti apzīmetu koda gabalu <?php $teksts = str_replace(":)", "dir/sm1.gif", $teksts); $teksts = str_replace(":(", "dir/sm2.gif", $teksts); $teksts = str_replace(";)", "dir/sm3.gif", $teksts); $teksts = str_replace(":P", "dir/sm4.gif", $teksts); ?> utt Link to comment Share on other sites More sharing options...
rnc Posted March 22, 2004 Report Share Posted March 22, 2004 (edited) Ja daudz to smaidu, tad mozh labaak izmantot divus masiivus. Vienaa masiivaa glabaajam linkus uz bildiiteem, otraa attieciigi smaidinja tekstisko veidu. 4 exmpl. <?php // padodam skriptam mainiigo $teksts $b_mas = array('smaids1.gif','smaids2.gif','beediigs.jpg'); $s_mas = array(':))',':)',':(('); /* elementus (tos smaidus) kam saakums ir liidziigs kaadam citam elementam ir jaaliek pirms taa cita elementa, citaadi :)) tiks uztverts kaa :) un aiz vinja veel paliks viena iekava */ for ($i=0;<=count($s_mas);$i++) { $teksts = str_replace ($s_mas[$i],'<img src="'.$b_mas[$i].'">',$teksts); } echo $teksts; ?> Edited March 22, 2004 by rnc Link to comment Share on other sites More sharing options...
S_K Posted March 29, 2004 Report Share Posted March 29, 2004 Man ir ši pati problēma, tikai savādākā veidā... Man ir ~300 sejiņas, lai nebūtu jādrukā man 300 rindu pēc jūsu ieteikuma, man vajadzētu darīt sekojošo: No teksta izgreist aaraa vietas, kur tiek pieprasiita sejinja Piemeeram: Teksta saakums :dusmiigs: teksta beigas. vajag izgreist sejinju "dusmiigs" un apskatities vai uz servera ir taada sejinja ar is_file() ja ir, tad atieciigo :dusmiigs: mees aizvietojam ar <img src="./dusmiigs.gif"> Tad man ir sejokosh jautaajums, kaa lai es izgreizhu no teksta sejinjas nosaukumu kursh ir starp koliem ielikts ? ja tiek lietotas vairaakas sejinjas, tad vajadzeetu array salikt taas sejinjas_nosaukumus dabuut laukaa, Kaa man to izdariit? :unsure: Link to comment Share on other sites More sharing options...
Kaklz Posted March 29, 2004 Report Share Posted March 29, 2004 Man ir ši pati problēma, tikai savādākā veidā... Man ir ~300 sejiņas, lai nebūtu jādrukā man 300 rindu pēc jūsu ieteikuma, man vajadzētu darīt sekojošo: No teksta izgreist aaraa vietas, kur tiek pieprasiita sejinja Piemeeram: Teksta saakums :dusmiigs: teksta beigas. vajag izgreist sejinju "dusmiigs" un apskatities vai uz servera ir taada sejinja ar is_file() ja ir, tad atieciigo :dusmiigs: mees aizvietojam ar <img src="./dusmiigs.gif"> Tad man ir sejokosh jautaajums, kaa lai es izgreizhu no teksta sejinjas nosaukumu kursh ir starp koliem ielikts ? ja tiek lietotas vairaakas sejinjas, tad vajadzeetu array salikt taas sejinjas_nosaukumus dabuut laukaa, Kaa man to izdariit? :unsure: ielasi masiivaa visas pieejamaas sejinjas ;) tb: <?php $dir = "images/"; if ($dh = opendir($dir)) { while (($file = readdir($dh)) !== false) { if ($file != '..' AND $file != '.'){ $replacements[':' . substr($file,0, -3) . ':'] = '<img src="images/'.$file.'" />'; } } closedir($dh); } strtr($text, $replacements); ?> kaut kas uz šito pusi. Doma sekojoša - ateram direktoriju lasīšanai ar opendir, tad skrienam cauri direktorijas saturam, meklējam visus failus, kas nav .. vai . un saliekam masīvā viņus bez faila paplašinājuma, pieliekot priekšā un beigās : un piešķiram vērtību, ar kuru aizvietosim attiecīgo simbolu kombināciju tekstā. Visbeidzot uztaisam pašu smaidiņu aizvietošanas procedūru ar strtr. Vismaz kaut kam uz pareizo pusi vajadzētu būt. Link to comment Share on other sites More sharing options...
S_K Posted March 29, 2004 Report Share Posted March 29, 2004 Doma nav slikta, bet ir viens defekts, ka tomēr ja tajā direktorijā ir vēl vairāk sejinju un apgrozība aug, kods tiek lietots aiz vien biežāk, sanāk serverim šausmīgi liela un lieka slodze... Tapēc es palieku pie sava jautājuma, kā masīvos var izvilkt no teksta Sejinjas_Nosaukumu kursh ir ielikts starp koliem vai citiem simboliem ? Piemērs: Teksta sākums :dusmiigs: teksta vidus :laimiigs: teksta beigas. Vēlamais rezultāts: $smily[0] = 'dusmiigs'; $smily[1] = 'laimiigs'; Ar split vai līdzīgām php funckijām to varētu dabūt gatavu, tikai kā un ar kurām? Link to comment Share on other sites More sharing options...
des Posted March 29, 2004 Report Share Posted March 29, 2004 (edited) Luuk Tev : function asr($symb,$text){ $a=explode($symb,$text);//sadalam peec simbola symb pa daljaam $o=array();//outputa masiivs $l=sizeof($a)-1;//masiiva izmeers foreach ($a as $k=>$v) { /*ja ir paara elements masiivaa peec kaartas un nav peedeejais (izteixme, kas tikai izsaakas ar attieciigo simbolu tad pievienojam outputam*/ if ($k%2==1 && $k<$l) { $o[]=$v; } } return $o; } Un izsaukums: $smily=asr(':','fsdf :dusmiigs: teksta vidus :laimiigs: teksta beigas.'); print_r($smily); Iedos Tev: Array ( [0] => dusmiigs [1] => laimiigs ) Vieniigais, ieteicams simbolu ":" aizvietot ar kaut ko garaaku, piemeeram, "::" (kaut ko, ko cilvji parasti neuzraxta), jo savaadaak, pats saproti, kas notix ar textu "Jaaniitim ir: piecas roziines: vinjas visas ir skaistas".... :) Edited March 29, 2004 by des Link to comment Share on other sites More sharing options...
des Posted March 29, 2004 Report Share Posted March 29, 2004 Patiesiibaa, ja atdalosho simbolu virkniiti izdomaa taadu, ko cilveeki parasti taapat neuzraksta, tad kods sanaak veel iisaaks: function asr($symb,$text){ $a=explode($symb,$text); $o=array(); foreach ($a as $k=>$v) { if ($k%2==1) $o[]=$v; } return $o; } Link to comment Share on other sites More sharing options...
rnc Posted March 29, 2004 Report Share Posted March 29, 2004 (edited) Negribas paaraak iedziljinaaties, bet vai tu man nevareetu paskaidrot: Tagad tu ar des doto skriptu esi savilics vajadziigo sejinju tekstus masiivaa. Kaa tu ieveietosi taas sejinjas pareizajaas vietaas ? updatis: Padomaaju, ar ciklu + str_replace ejot paari tam jaunieguutajam masiivam un vecajam stringam ? Edited March 29, 2004 by rnc Link to comment Share on other sites More sharing options...
des Posted March 29, 2004 Report Share Posted March 29, 2004 Aatrdarbiibas noluukos var iztikt bez str_replace... bishku tikai jaapamodificee mana augstaak uzraxtiitaa fja, lai rezultaataa atgrieztu uzreiz jau repleisoto textu: function asrt($symb,$text,$rpref,$rpost){ $a=explode($symb,$text); $t=''; foreach ($a as $k=>$v) { if ($k%2==1) $t.=$rpref.$v.$rpost; else $t.=$v; } return $t; } $smily=asrt('::','Texta saakums ::dusmiigs:: teksta vidus ::laimiigs:: teksta beigas.',"<img src='images/",".gif'>"); print ($smily); Veel tur pat pa vidu var iebaazt arii chekoshanu, vai fails existee.... function asrtf($symb,$text,$rpref,$rpost,$fpref,$fpost){ $a=explode($symb,$text); $t=''; foreach ($a as $k=>$v) { if ($k%2==1) { if (file_exists($fpref.$v.$fpost)){ $t.=$rpref.$v.$rpost; } else { $t.=$symb.$v.$symb; } } else $t.=$v; } return $t; } $smily=asrtf('::','Texta saakums ::dusmiigs:: teksta vidus ::laimiigs:: teksta beigas.',"<img src='images/",".gif'>","images/",".gif"); print ($smily); Protams, peedeejaa gadiijumaa $rpref un $rpost var aizvietot ar kaut kaadu $imagepath & taadeejaadi naff 2x jaaraxta, bet miinuss ir, ka fjai zuud patvaljiigums un pielietojamiiba netikai, ka prefix ir vienkaarshi img.... whatever, ceru, ka domu saprati :) Link to comment Share on other sites More sharing options...
des Posted March 29, 2004 Report Share Posted March 29, 2004 Katraa zinjaa apskatiities tikai attieciigajaa postaa esoshos ::smileyus:: && pachekot failu existenci ir daudz aatrdarbiigaak, nekaa pirms katra posta ielasiit visu 300 smailiju direktoriju & peec tam veel 300x repleisot, ir vai nav tas smailijs tur iekshaa... Link to comment Share on other sites More sharing options...
Gacha Posted March 29, 2004 Report Share Posted March 29, 2004 A kā būtu ātrāk vai šitas ar to dir skenēšanu, vai tas ko sākumā sviesc teica(es tadu ar 50 smaidiņiem izmantoju) ??? Vai nevarētu uztaisīt tā, ka $teksts = str_replace(":)", "dir/sm1.gif", $teksts); šitās 300 rindiņas stāv vienā failā un to inklūdo pa vidu kodam. Un vēl savā administrātor lapā uztaisa formu ar 2 laikiem - viens bildes uploudam un otrs smaidiņa tekstam. Tad postojot attiecīgā rindiņa tiek pievienota faila beigās!!! Tā ir tikai vēl viena ideja <_< Link to comment Share on other sites More sharing options...
S_K Posted March 29, 2004 Report Share Posted March 29, 2004 des, pašlaik es savā saveidojumā arī izmantoju explode, bet ir viens defekts.. araayaa tiek sadaliits teksts ar sejinju atdalaamiem simboliem :: Kas to procesu biki noslogo, iisti neidziljinaajos kaa tas viss pilniibaa darbojas, tomeer atradu vienu defektu, ja teksts ir shaads: Texta saakums ::laimiigs: eksta vidus ::dusmiigs:: teksta beigas. tad neviena no sejinjaam netiek uziimeeta... Tomēr es atkal palieku pie sava jautājuma, kā ar "split" vai līdzīgām funkcijām var izvilkt no teksta araayaa tieši tās daļas kuras ir iekš atdalaamajiem simbokiem :: Vai patiešām php mums tādas iespējas nesniedz ? PS tos img folderus iespeejams nevajag 2x noraadiit, lai nav jaaparaksta visu laiku tie tavaa kodaa :) Link to comment Share on other sites More sharing options...
Kaklz Posted March 30, 2004 Report Share Posted March 30, 2004 Labi, kā būtu ar šo? <?php $dir = 'images/'; $elements = explode (':', $text); foreach ($elements as $possibleSmiley){ if (is_file($dir . $possibleSmiley)){ $replacements[$possibleSmiley] = '<img src="' . $dir . $possibleSmiley . '" />'; } } $text = strtr($text, $replacements); ?> Link to comment Share on other sites More sharing options...
Recommended Posts