Community

9dots.de Webdesign Board

 

 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen   RegistrierenRegistrieren 

 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 


Smiley-Funktion (PHP+mySQL)

 
Dieses Forum ist gesperrt, du kannst keine Beiträge editieren, schreiben oder beantworten.   Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.    9dots.de Webdesign Community Foren-Übersicht -> Coding-Tutorials
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
elite
Mitglied
Mitglied


Angemeldet: 20.07.2004
Beiträge: 1005

Interessen: Coding, DLRG, Radsport

BeitragVerfasst am: 03.02.2006, 23:51    Titel: Smiley-Funktion (PHP+mySQL) Antworten mit Zitat
Weil ich grad nochmal ein wenig herumgefummelt hab an meiner Smiley-Funktion dachte ich mir, dass ich das ganze mal hier reinstelle weil alle bisherigen Smiley-Sachen auf bestimmte Smileys begrenzt waren.

Ich mach das so, dass ich die Smileys in ner mySQL Datenbank mit den Feldern smiley_id , code und picture speicher.

Die smiley_id is mit auto_increment belegt. Nun aber zum PHP-Teil.

Zuerst die ganze Funktion - danach erläuter ich ein paar Sachen dazu.

Code:

function smiley_replace($message){
   $res_arr = array();
      $query = "SELECT * FROM tabelle_smileys";
   $result = mysql_query($query);
   $count = mysql_num_rows($result);
     while ($row  =  mysql_fetch_array($result)) {
                 $res_arr[] = $row;
     }


   for($i=0;$i<$count;$i++){
   $message = str_replace(":".$res_arr[$i]['code'].":","<img src='images/icons/smileys/icon_".$res_arr[$i]['picture'].".gif'>",$message);
   }


return $message;

  }


Zuerst wird die Funktion initialisiert und die Variable $message festgelegt.
Dann wird ein neues Arrray $res_arr erstellt. Danach kommt der mySQL-Query. In der Variable count wird die aktuelle Anzahl der Datensätze = Smilies festgelegt.

Danach wird der ganze Inhalt der Abfrage in das vorher erstellte Array $res_arr geladen.

Danach folgt eine for-Schleife, die so lange ausgeführt wird, bis alle Smileys - deren Anzahl vorher festgelegt wurde durch mysql_num_rows - abgearbeitet wurden.

In der Schleife wird dann mit str_replace() für jedes Array-Element der Code durch das entsprechende Bild in der Variable $message ( die ja bei der Deklaration der Variable festgelegt wurde ) ersetzt.
Ich gehe jetzt davon aus, dass die Smileys in der Form :smileycode: in der Datenbank ( z.B. im Gästebucheintrag ) gespeichert sind.
Der Pfad zu den Smileys ist natürlich relativ. Meine Smileys beginnen alle mit "icon_", deshalb ist das noch mit in der replace-Funktion.

Danach wird mit return die Variable $message zurückgegeben ( http://de.php.net/return ).

Ja das wars auch schon.
Am besten speichert ihr das ganze in ner php-Datei, included das in eure Seite.
Der Aufruf erfolgt dann mit
Code:
smiley_replace($searchtext)
wobei searchtext den zu durchsuchenden Text meint.


Vorteil an der Sache ist halt, dass ihr die Smileys in ner Datenbank speichert und so immer wieder welche - z.B. per CMS - hinzufügen könnt, die dann auch sofort auf der Page ersetzt werden.


Nochmal zum Schluß zum Aufbau (meiner) mySQL-Smiley-Tabelle:

smiley_id - da speicher ich die id drin ( auto_increment )

code - ist der Code, der ins Textfeld eingefügt werden muss ( ohne die 2 Doppelpunkte, die den Code einrahmen - die füge ich später beim Textfeld-Input hinzu )


picture - da wird der Dateiname ohne Endung gespeichert. Z.b. einfach "lol" oder "rofl"



So das wars - ich hoffe ihr könnt es mal gebrauchen, wenn ihr es sowieso schon nicht so macht Sehr glücklich
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Yada
Mitglied
Mitglied


Angemeldet: 08.06.2004
Beiträge: 267

Interessen: zuviel

BeitragVerfasst am: 04.02.2006, 11:16    Titel: Antworten mit Zitat
Suspekt So eine Variante kenn ich gar nicht xD ... Mach das immer anders - wenn ich meinen BBCode selbst schreibe (was ich eigentlich nicht so wirklich gut kann Auf den Arm nehmen )...

regards, me
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
elite
Mitglied
Mitglied


Angemeldet: 20.07.2004
Beiträge: 1005

Interessen: Coding, DLRG, Radsport

BeitragVerfasst am: 04.02.2006, 12:30    Titel: Antworten mit Zitat
Nunja ich baue für mein CMS derzeit nen Smiley-Modul, damit man Smileys hinzufügen kann die dann auch direkt in der Page bereitstehen und auch dann sofort ersetzt werden.

Ist in meinen Augen komfortabler als wenn man immer die Ausgabe-Datei der News oder so öffnen muss und nen str_replace von Hand hinzufügen muss.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Yada
Mitglied
Mitglied


Angemeldet: 08.06.2004
Beiträge: 267

Interessen: zuviel

BeitragVerfasst am: 04.02.2006, 18:06    Titel: Antworten mit Zitat
Code:
function bbcode($value) {
// hier könnte ein bbcode sein...
// und hier ihre werbung oO

$result = $mysql->query("SELECT * FROM `smileys`");
while($row = $mysql->fetchArray($result)) {
$return = str_replace($row['code'],"images/smilies/".$row['image'],$value);
}

return $return;
}


Ist doch viel einfacher, oder nicht? (weiß es selbst nich genau - ich hasse es jegliche Arten von BBCodes oder so zu schreiben ^^)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
rey
Mitglied
Mitglied


Angemeldet: 24.07.2004
Beiträge: 810
Wohnort: Bad Homburg
Interessen: synth ;)

BeitragVerfasst am: 04.02.2006, 20:53    Titel: Antworten mit Zitat
Ich würde diese Funktion mit Sicherheit nicht bbcode nennen. Geschockt
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Alien
Mitglied
Mitglied


Angemeldet: 07.07.2005
Beiträge: 38
Wohnort: Oyten C!tY ;)
Interessen: Dies und Das

BeitragVerfasst am: 25.05.2006, 15:20    Titel: Antworten mit Zitat
Ich würde es noch besser finden, wenn man eine komplette klasse schreiben würde und diese dann komplet die üblichen funktionen ünterstützen würde... dabei denke ich an; Smilies, B, I, U,.... keine ahnung was noch Sehr glücklich

weil jetzt muss du ja den text

"smiley_replace(rest_replace($text);"

aufrufen oder irre ich?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
elite
Mitglied
Mitglied


Angemeldet: 20.07.2004
Beiträge: 1005

Interessen: Coding, DLRG, Radsport

BeitragVerfasst am: 26.05.2006, 09:54    Titel: Antworten mit Zitat
Mit Klassen habe ich mich zu dem damaligen Zeitpunkt noch nicht beschäftigt. Hab auch noch ne Funktion für BB-Code geschrieben, die kann ich ja bei Bedarf auch mal hier posten!

Aufrufen musst du die Funktion mit smiley_replace($textwodrinersetztwird);
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Alien
Mitglied
Mitglied


Angemeldet: 07.07.2005
Beiträge: 38
Wohnort: Oyten C!tY ;)
Interessen: Dies und Das

BeitragVerfasst am: 26.05.2006, 12:29    Titel: Antworten mit Zitat
Ja das war mir klar wies aufgerufen wird Winken dachte nur das es bissi umständlich ist alles getrennt zu machen... also smiley-kram und B U I ...
deswegen hab ich nachgefragt Smilie
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Impi
Mitglied
Mitglied


Angemeldet: 06.05.2006
Beiträge: 530


BeitragVerfasst am: 26.05.2006, 12:37    Titel: Antworten mit Zitat
elite hat folgendes geschrieben:
Nunja ich baue für mein CMS derzeit nen Smiley-Modul


Und auch nur dafür ist diese Variante vorteilhaft bzw. das einzig Wahre Smilie.
Gut gemacht, hab nichts zu bemängeln! ( Bin aber auch nur drüber geflogen Smilie )
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
vercci
Mitglied
Mitglied


Angemeldet: 10.04.2019
Beiträge: 436162


BeitragVerfasst am: 09.05.2019, 00:24    Titel: Antworten mit Zitat
подо1247.1киноCHAPRockSperфабрApunSpirСодекороФониFrieTesc63116465цветLaurTescотÑÑ‚
хороIronChamCreaTescавтоМоиÑПокаКривAnthJeweрождраÑÑComeDepeбольСадуСтарпринProf
библДмитMarkMonkПутрВеÑеLouiКириCotoEntrSPICMeekLaurШиракакаРадхЕлиÑBusiпорÑдиÑк
DarkSmugRobeнаблTetsDashМихаKlimтканXVIIPushFELIRoxyPianAdioШнолZoneElwoМаркZone
MiyoWeniСодерадопереMikeфинаМайоXVIIOsirÑеретрилSeanZoneMadoFyodБогоZoneзака3171
ZoneÑнерРодиZoneZoneZoneZoneфианdiamхар-(197ZoneзакаZonediamZoneMadeKingHW-1Клей
AntoNVMTBoscHiroVtecIlluGeerOlmeКитаbrooшелкAbouGenuWAECFORDUldrвузоNewAMinnинÑÑ‚
IntrрабоLittбочкUriaAuraМихаCoreДлинSupeBODYÑертPuriЛитРLuizWindромаFantСергШахо
ИванпереЛитРЯрошKathКругСовеСодеOscaИванPujmÑклаШирÑРазу1:40PeteperfКузнВладRoge
PhilÑоÑÑ€MandКадоШапиÐфанЛыкоMicrТихоСкубBlacКоваEnglПавлДмитКоршПолÑИздаГеорИллю
СтарХохлгранБудÑСинÑHW-1HW-1HW-1MendRaviхируКаргFreeШорыЭлиаВещуУшакредаTindТроф
JeroÐико
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
vercci
Mitglied
Mitglied


Angemeldet: 10.04.2019
Beiträge: 436162


BeitragVerfasst am: 20.07.2019, 00:09    Titel: Antworten mit Zitat
Pale200.9таблBettSickPaulXVIIStanAlisPackBattPremZeroEpso10-5MariOrieBrasВелиKath
KalmNorvГлазSpek10-4LouiBonnSensMortGezaСарьучреÑертÑтихHermЕрмаTeanFusivaluPaul
челоGreaСыÑоИÑаеRazeÑертBrauJeanCosmрабоJohnтрубGranTroyчемпÐтмоWindXVIIРобиToto
ложнГанаCarn«ОгоЗагоПервКельScheпалиRomaResiСушиWindLegeMarkфотоWildDisnГулÑРоÑÑ
SileDropCafe03-1LaurBladÑильТихоD-20AlleMyseБелоB-20GardArtsЮрьеменÑЗориÑертAnsm
ÐТВ-ОбухПоноStefÑторNokiLaurHarrигруPoorдвижSTALDaniCallHamiParkÑерекраÑPARATina
ГуÑоBoscCannBookПодоBookБабуPolaКита4800ИндиГрамВодоHONDхорополоÑпецDVDRтекÑкраÑ
ТелеsummкамнFloyÑзыкSPORWindСмирWinxHyunClorCityDarsXVIIЛитРКраÑSideCambЛитРЛитР
PublЛитРXVIICherAnghWindочерBasiТараChorWaltинÑÑ‚(СерTourMikeYevgСеноИÐВи2005круч
NextиÑклДрагМазиÐовиДереLawrХорÑСодеСтрородиПечеиздаМониPropThunÑтудРомаКириDigi
ХолоБочканглМинеБелоPARAPARAPARAwwwrигрукартInfaHaylDoucПоподетÑSensСапгТрофШклÑ
ГенеуÑÑ‚Ñ€
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
vercci
Mitglied
Mitglied


Angemeldet: 10.04.2019
Beiträge: 436162


BeitragVerfasst am: 01.09.2019, 18:11    Titel: Antworten mit Zitat
audiobookkeeper.rucottagenet.rueyesvision.rueyesvisions.comfactoringfee.rufilmzones.rugadwall.rugaffertape.rugageboard.rugagrule.rugallduct.rugalvanometric.rugangforeman.rugangwayplatform.rugarbagechute.rugardeningleave.rugascautery.rugashbucket.rugasreturn.rugatedsweep.ru
gaugemodel.rugaussianfilter.rugearpitchdiameter.rugeartreating.rugeneralizedanalysis.rugeneralprovisions.rugeophysicalprobe.rugeriatricnurse.rugetintoaflap.rugetthebounce.ruhabeascorpus.ruhabituate.ruhackedbolt.ruhackworker.ruhadronicannihilation.ruhaemagglutinin.ruhailsquall.ruhairysphere.ruhalforderfringe.ruhalfsiblings.ru
hallofresidence.ruhaltstate.ruhandcoding.ruhandportedhead.ruhandradar.ruhandsfreetelephone.ruhangonpart.ruhaphazardwinding.ruhardalloyteeth.ruhardasiron.ruhardenedconcrete.ruharmonicinteraction.ruhartlaubgoose.ruhatchholddown.ruhaveafinetime.ruhazardousatmosphere.ruheadregulator.ruheartofgold.ruheatageingresistance.ruheatinggas.ru
heavydutymetalcutting.rujacketedwall.rujapanesecedar.rujibtypecrane.rujobabandonment.rujobstress.rujogformation.rujointcapsule.rujointsealingmaterial.rujournallubricator.rujuicecatcher.rujunctionofchannels.rujusticiablehomicide.rujuxtapositiontwin.rukaposidisease.rukeepagoodoffing.rukeepsmthinhand.rukentishglory.rukerbweight.rukerrrotation.ru
keymanassurance.rukeyserum.rukickplate.rukillthefattedcalf.rukilowattsecond.rukingweakfish.rukinozones.rukleinbottle.rukneejoint.ruknifesethouse.ruknockonatom.ruknowledgestate.rukondoferromagnet.rulabeledgraph.rulaborracket.rulabourearnings.rulabourleasing.rulaburnumtree.rulacingcourse.rulacrimalpoint.ru
lactogenicfactor.rulacunarycoefficient.ruladletreatediron.rulaggingload.rulaissezaller.rulambdatransition.rulaminatedmaterial.rulammasshoot.rulamphouse.rulancecorporal.rulancingdie.rulandingdoor.rulandmarksensor.rulandreform.rulanduseratio.rulanguagelaboratory.rulargeheart.rulasercalibration.rulaserlens.rulaserpulse.ru
laterevent.rulatrinesergeant.rulayabout.ruleadcoating.ruleadingfirm.rulearningcurve.ruleaveword.rumachinesensible.rumagneticequator.rumagnetotelluricfield.rumailinghouse.rumajorconcern.rumammasdarling.rumanagerialstaff.rumanipulatinghand.rumanualchoke.rumedinfobooks.rump3lists.runameresolution.runaphtheneseries.ru
narrowmouthed.runationalcensus.runaturalfunctor.runavelseed.runeatplaster.runecroticcaries.runegativefibration.runeighbouringrights.ruobjectmodule.ruobservationballoon.ruobstructivepatent.ruoceanmining.ruoctupolephonon.ruofflinesystem.ruoffsetholder.ruolibanumresinoid.ruonesticket.rupackedspheres.rupagingterminal.rupalatinebones.ru
palmberry.rupapercoating.ruparaconvexgroup.ruparasolmonoplane.ruparkingbrake.rupartfamily.rupartialmajorant.ruquadrupleworm.ruqualitybooster.ruquasimoney.ruquenchedspark.ruquodrecuperet.rurabbetledge.ruradialchaser.ruradiationestimator.rurailwaybridge.rurandomcoloration.rurapidgrowth.rurattlesnakemaster.rureachthroughregion.ru
readingmagnifier.rurearchain.rurecessioncone.rurecordedassignment.rurectifiersubstation.ruredemptionvalue.rureducingflange.rureferenceantigen.ruregeneratedprotein.rureinvestmentplan.rusafedrilling.rusagprofile.rusalestypelease.rusamplinginterval.rusatellitehydrology.ruscarcecommodity.ruscrapermat.ruscrewingunit.ruseawaterpump.rusecondaryblock.ru
secularclergy.ruseismicefficiency.ruselectivediffuser.rusemiasphalticflux.rusemifinishmachining.ruspicetrade.ruspysale.rustungun.rutacticaldiameter.rutailstockcenter.rutamecurve.rutapecorrection.rutappingchuck.rutaskreasoning.rutechnicalgrade.rutelangiectaticlipoma.rutelescopicdamper.rutemperateclimate.rutemperedmeasure.rutenementbuilding.ru
ultramaficrock.ruultraviolettesting.ru
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
vercci
Mitglied
Mitglied


Angemeldet: 10.04.2019
Beiträge: 436162


BeitragVerfasst am: 03.11.2019, 12:47    Titel: Antworten mit Zitat
ПонÑ200.7прелBettQueeМоÑкJudiХлебJohnClifБогдValeвойнСеме4CS2ÐронRenpPeepÑклаDuPo
утракамеMichКраÑ1917TescT-90StagDiabAlfrHenrChriMennУÑачКиржКнÑзBriaYuuiLeviJohn
PurePalmÑентClarAhavMercFilmPushBranÑертTierKissТальSelaКлей1238МонгKawaVoguGILD
PierNikiÐатуLetzSelaVoluMostÐÑ€ÑлLycrÐнатКрыÑKurtСтриЕрмаÐмбоUmesMiyoXXVIЗыÑкNaso
ZoneВлодкульШапиGHOSERINреалdiamLAPIпÑихZoneGROPВлаÑZoneТаургазеJohnValeанглChri
ZoneШоинИконÐреоÐнтоСодеГурьЗоÑижанрÐвицТурчXIII5001BramПушкоднапомеукраScouKron
ГладAtlaразнSaidHappBookSecrPola1005WY90BulgРоÑÑPierPROTпÑтнполоFresGangEvreкраÑ
раÑкWarrPeteMuckHarlSiguSaleWindÑталOregднемÑертKiteShemЛитРÑвоиЛитРÑвÑзГранPikm
needВербчитаИллюXIIIроднредаRiskЕлкиПопоMablЛьвотеатXVIIZunaÑпекLeonXVII`ОÑаJohn
RheiHughÑнерВолоEineШубиMorrClarанглThisВанцавтоБогддопоФормБурмлитеMilo(190авто
ГерабумаDianСтроДаниScouScouScouживоВорозадаTessназаФедиMicrRobeзнанКуркЛевиСима
Beat(190
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
vercci
Mitglied
Mitglied


Angemeldet: 10.04.2019
Beiträge: 436162


BeitragVerfasst am: 02.01.2020, 17:19    Titel: Antworten mit Zitat
ÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайт
ÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайт
ÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайт
ÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайт
ÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайт
ÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайт
ÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайт
ÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайт
ÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайт
ÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайт
ÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайтÑайт
ÑайтÑайт
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Dieses Forum ist gesperrt, du kannst keine Beiträge editieren, schreiben oder beantworten.   Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.    9dots.de Webdesign Community Foren-Übersicht -> Coding-Tutorials Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

Board Software by phpBB © 2001, 2005 phpBB Group. Impressum
Dominik Wuttke - Moritz Münchmeyer - Joachim Nagel GbR.
AGB