Noget som str_replace i JS?

Her kan du få hjælp og stille spørgsmål til JavaScript!
Besvar
Brugeravatar
PatricksGamerTag
Rutineret
Rutineret
Indlæg:89
Tilmeldt:27. nov 2011, 14:47
Geografisk sted:Nordjylland, Visborg
Noget som str_replace i JS?

Indlæg af PatricksGamerTag » 10. mar 2012, 13:06

Hej nemprogrammering. :)

Jeg er begyndt at lave en chat, jeg har lavet det meste mig selv, og hentet lidt på nettet.

Men nu vil jeg gerne have noget som minder om str_replace i php.
Fordi jeg gerne vil have ":)" til at blive til en :)

Som vil være noget som dette her i php:

Kode: Vælg alt

$besked = str_replace(':)', '<img src="http://habbomania.dk/v2/style/Eddy.jpg">', $besked);
Har søgt lidt på google omkring det man kan ikke finde noget der har hjulpet mig.
Så ja, hvordan gør jeg det i Javascript?
Her er mine koder:
chat.php:

Kode: Vælg alt

var instanse = false;
var state;
var mes;
var file;

function Chat () {
    this.update = updateChat;
    this.send = sendChat;
	this.getState = getStateOfChat;
}

function getStateOfChat(){
	if(!instanse){
		 instanse = true;
		 $.ajax({
			   type: "POST",
			   url: "process.php",
			   data: {  
			   			'function': 'getState',
						'file': file
						},
			   dataType: "json",
			
			   success: function(data){
				   state = data.state;
				   instanse = false;
			   },
			});
	}	 
}

function updateChat(){
	 if(!instanse){
		 instanse = true;
	     $.ajax({
			   type: "POST",
			   url: "process.php",
			   data: {  
			   			'function': 'update',
						'state': state,
						'file': file
						},
			   dataType: "json",
			   success: function(data){
				   if(data.text){
						for (var i = 0; i < data.text.length; i++) {
                            $('#chat-area').append($("<p>"+ data.text[i] +"</p>"));
                        }								  
				   }
				   document.getElementById('chat-area').scrollTop = document.getElementById('chat-area').scrollHeight;
				   instanse = false;
				   state = data.state;
			   },
			});
	 }
	 else {
		 setTimeout(updateChat, 1500);
	 }
}

function sendChat(message, nickname)
{       
    updateChat();
     $.ajax({
		   type: "POST",
		   url: "process.php",
		   data: {  
		   			'function': 'send',
					'message': message,
					'nickname': nickname,
					'file': file
				 },
		   dataType: "json",
		   success: function(data){
			   updateChat();
		   },
		});
}
Har også en index.php og en process.php. Bare sig til hvis i vil se dem.
Håber en kan hjælpe! :)

Brugeravatar
ThomasI
Grundlægger
Grundlægger
Indlæg:1528
Tilmeldt:28. dec 2010, 10:49

Re: Noget som str_replace i JS?

Indlæg af ThomasI » 10. mar 2012, 18:36

Hej Patrick,

Jeg må desværre melde pas på den her...

Har lidt på fornemmelsen at JS ikke er bygget til den slags manøvre...

du har ikke nogen mulighed for at integrere lidt php i din JS kode som måske kan klare den for dig?

Brugeravatar
webudvikleren
Rutineret
Rutineret
Indlæg:80
Tilmeldt:13. jun 2011, 21:11
Geografisk sted:Esbjerg
Kontakt:

Re: Noget som str_replace i JS?

Indlæg af webudvikleren » 12. mar 2012, 19:34

Jeg vil helt bestemt bruge str_replace i din process.php hvis jeg var dig. At fixe den udskiftning gennem JS er noget hø (efter min mening)...

Hvad returnerer den hvis du bruger str_replace? Bare tekststrengen og intet billede? En god idé er også at ændre "data.text" til noget andet da "text" er reserveret... "Text" kan ikke outputte HTML, men kun strenge. Så HTML delen kan blive konvertereret til plain text.

Så vidt jeg lige husker på stående fod, kan "append" godt håndtere HTML...

Brugeravatar
PatricksGamerTag
Rutineret
Rutineret
Indlæg:89
Tilmeldt:27. nov 2011, 14:47
Geografisk sted:Nordjylland, Visborg

Re: Noget som str_replace i JS?

Indlæg af PatricksGamerTag » 13. mar 2012, 14:47

webudvikleren skrev:Jeg vil helt bestemt bruge str_replace i din process.php hvis jeg var dig. At fixe den udskiftning gennem JS er noget hø (efter min mening)...

Hvad returnerer den hvis du bruger str_replace? Bare tekststrengen og intet billede? En god idé er også at ændre "data.text" til noget andet da "text" er reserveret... "Text" kan ikke outputte HTML, men kun strenge. Så HTML delen kan blive konvertereret til plain text.

Så vidt jeg lige husker på stående fod, kan "append" godt håndtere HTML...
Hej, jeg har prøvet mig lidt frem men kan ikke få det til at virke.

Min process.php ser sådan her ud:

Kode: Vælg alt

<?php
str_replace('Test', 'testen virker'>');
    $function = $_POST['function'];
    
    $log = array();
    
    switch($function) {
    
    	 case('getState'):
        	 if(file_exists('chat.txt')){
               $lines = file('chat.txt');
        	 }
             $log['state'] = count($lines); 
        	 break;	
    	
    	 case('update'):
        	$state = $_POST['state'];
        	if(file_exists('chat.txt')){
        	   $lines = file('chat.txt');
        	 }
        	 $count =  count($lines);
        	 if($state == $count){
        		 $log['state'] = $state;
        		 $log['text'] = false;
        		 
        		 }
        		 else{
        			 $text= array();
        			 $log['state'] = $state + count($lines) - $state;
        			 foreach ($lines as $line_num => $line)
                       {
        				   if($line_num >= $state){
                         $text[] =  $line = str_replace("\n", "", $line);
        				   }
         
                        }
        			 $log['text'] = $text; 
        		 }
        	  
             break;
    	 
    	 case('send'):
		  $nickname = htmlentities(strip_tags($_POST['nickname']));
			 $reg_exUrl = "/(http|https|ftp|ftps)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?/";
			  $message = htmlentities(strip_tags($_POST['message']));
		 if(($message) != "\n"){
        	
			 if(preg_match($reg_exUrl, $message, $url)) {
       			$message = preg_replace($reg_exUrl, '<a href="'.$url[0].'" target="_blank">'.$url[0].'</a>', $message);
				} 
			 
        	
        	 fwrite(fopen('chat.txt', 'a'), "<span>". $nickname . "</span>" . $message = str_replace("\n", " ", $message) . "\n"); 
		 }
        	 break;
    	
    }
    
    echo json_encode($log);

?>
Og mine chat beskeder komme ikke frem i chatten. :?:
:)

Brugeravatar
webudvikleren
Rutineret
Rutineret
Indlæg:80
Tilmeldt:13. jun 2011, 21:11
Geografisk sted:Esbjerg
Kontakt:

Re: Noget som str_replace i JS?

Indlæg af webudvikleren » 13. mar 2012, 14:58

som det lige hurtigt ser ud så vil du outputte data.text som dobbeltarray:

$log['text']['text']... Det er nok der den hænger når du prøver at trække data ud...

Besvar