Foros del Web » Programando para Internet » Javascript »

transformar este javascript a php ?

Estas en el tema de transformar este javascript a php ? en el foro de Javascript en Foros del Web. buenas que tal, yo de javascript la verdad que cero o casi cero. Tengo una funcion que esta hecha en javascript, pero la necesito usar ...
  #1 (permalink)  
Antiguo 12/05/2008, 08:25
 
Fecha de Ingreso: marzo-2007
Mensajes: 180
Antigüedad: 17 años, 1 mes
Puntos: 0
transformar este javascript a php ?

buenas que tal, yo de javascript la verdad que cero o casi cero.
Tengo una funcion que esta hecha en javascript, pero la necesito usar en php , alguno sabria hacer como una copia pero en php ? porque no entiendo ni como funcionan las funciones nativas de js.

Código PHP:
var vowels "(A)|(H)|(I)|(M)|(R)|(U)|(\\:)|(\\|(\\|)?)|(a((i)|(u))?)|(e)|(i)|(lR)|(o(M)?)|(u)"
var consonants "(C)|(D(h)?)|(G)|(J)|(N)|(S)|(T(h)?)|(b(h)?)|(c)|(d(h)?)|(g(h)?)|(h)|(j(h)?)|(k(h)?)|(l)|(m)|(n)|(p(h)?)|(r)|(s)|(t(h)?)|(v)|(y)|(z)"
var letter_codes = {
"~a" "अ",
"~A" "आ",
"~i" "इ",
"~I" "ई",
"~u" "उ",
"~U" "ऊ",
"~R" "ऋ",
"~lR" "&#2316",
"~e" "ए",
"~ai" "ऐ",
"~o" "ओ",
"~au" "औ",
"a" "",
"A" "ा",
"i" "ि",
"I" "ी",
"u" "ु",
"U" "ू",
"R" "ृ",
"lR" "ॄ",
"e" "े",
"ai" "ै",
"o" "ो",
"au" "ौ",
"k" "क",
"kh" "ख",
"g" "ग",
"gh" "घ",
"G" "ङ",
"c" "च",
"C" "छ",
"j" "ज",
"jh" "झ",
"J" "ञ",
"T" "ट",
"Th" "ठ",
"D" "ड",
"Dh" "ढ",
"N" "ण",
"t" "त",
"th" "थ",
"d" "द",
"dh" "ध",
"n" "न",
"p" "प",
"ph" "फ",
"b" "ब",
"bh" "भ",
"m" "म",
"y" "य",
"r" "र",
"l" "ल",
"v" "व",
"z" "श",
"S" "ष",
"s" "स",
"h" "ह",
"H" "ः",
":" "ः",
"M" "ं",
"|" "।",
"||" "॥",
"oM" "ॐ",
"~H" "ः",
"~:" "ः",
"~M" "ं",
"~|" "।",
"~||" "॥",
"~oM" "ॐ",
"*" "्"
}



function 
split_word(word)
{
  var 
syllables = new Array(0);
  var 
vowel_start_p true;
  while (
word.length) {
    
re = new RegExp(vowels);
    var 
index word.search(vowels);
    if (
index == 0) {  //the vowel's at the start of word
      
var matched re.exec(word)[0]; //what is it?
      
if (vowel_start_p) {
    
syllables.push(("~"+matched)); //one more to the syllables
      
} else {
    
syllables.push(matched);
      }
      
vowel_start_p true;
      
word word.substring(matched.length);
    } else {
      
re = new RegExp(consonants);
      var 
index word.search(consonants);
      if (
index == 0) {
    var 
matched re.exec(word)[0];
    
syllables.push(matched);
    
vowel_start_p false;
    
word word.substring(matched.length);

    
//look ahead for virama setting
    
var next word.search(vowels);
    if (
next != || word.length == 0)
      
syllables.push('*');
      } else {
    
syllables.push(word.charAt(0));
    
word word.substring(1);
      }
    }
  }
  return 
syllables;
}

function 
match_code(syllable_mcc)
{
  var 
matched letter_codes[syllable_mcc];

  if (
matched != null) return matched;
  return 
syllable_mcc;
}

function 
one_word(word_ow)
{
  if (!
word_ow) return "";
  var 
syllables_ow split_word(word_ow);
  var 
letters_ow = new Array(0);

  for (var 
i_ow 0i_ow syllables_ow.lengthi_ow++) {
    
letters_ow.push(match_code(syllables_ow[i_ow]));
  }
  return 
letters_ow.join("");
}

function 
many_words(sentence)
{
  var 
regex "((" vowels ")|(" consonants "))+";
  var 
words = new Array(0);
  while (
sentence.length >= 1) {
    
re = new RegExp("^``" regex);
    var 
match re.exec(sentence);
    if (
match != null) {
      
match match[0];
      
words.push("`");
      
words.push(one_word(match.substring(2)));
      
sentence sentence.substring(match.length);
    } else {
      
re = new RegExp("^`" regex);
      
match re.exec(sentence);
      if (
match != null) {
    
match match[0];
    
words.push(match.substring(1));
    
sentence sentence.substring(match.length);
      } else {
    
re = new RegExp("^" regex);
    
match re.exec(sentence);
    if (
match != null) {
      
match match[0];
      
words.push(one_word(match));
      
sentence sentence.substring(match.length);
    } else {
      
words.push(sentence.charAt(0));
      
sentence sentence.substring(1);
    }
      }
    }
 }
  return 
words.join("");
}

function 
print_many_words(palabra)
{
  var 
text_pmw many_words(palabra);

  var 
ans "";
  while (
text_pmw.length) {
    var 
unicode_chars = /&#[0-9]+;/;
    
re unicode_chars;
    var 
matche re.exec(text_pmw);
    if (
matche != null) {
      
matche matche[0];
      
search text_pmw.search(unicode_chars);
      
ans += text_pmw.substring(0search);
      
ans += String.fromCharCode(matche.match(/[0-9]+/));
      
text_pmw text_pmw.substring(search matche.length);
    } else {
      
ans += text_pmw.substring(0);
      
text_pmw "";
    }
  }


  var 
html_txt "";
  for (
i=0i<ans.lengthi++) {
    var 
unicode_character ans.charCodeAt(i);
    switch (
unicode_character) {
    case 
32:
      
html_txt += " ";
      break;
    case 
10:
    case 
13:
      
html_txt += "<br/>\n";
      break;
    default:
      
html_txt += "&#" unicode_character ";";
    }
  }

  return 
html_txt;

  #2 (permalink)  
Antiguo 12/05/2008, 09:43
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Re: transformar este javascript a php ?

Ayudar es facil, pero si nos contaras que es lo que quieres hacer, que hace esta función igual sabemos alguna forma de hacerlo sintener que traducir nada.

Una vez dicho esto, sabes que puedes usar javascript en las paginas php.
Es decir, puedes incorporar javascript en tus paginas, lo unico que tines que tener claro es que lo que haga javascript lo hara del lado cliente, por tanto si quieres verlo des de el servidor lo unico que tienes que hacer es pasarlo al servidor por los metodos habituales get o post....

Quim
  #3 (permalink)  
Antiguo 12/05/2008, 09:52
 
Fecha de Ingreso: marzo-2007
Mensajes: 180
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: transformar este javascript a php ?

el tema es asi, tengo un php bastante grande, que toma un archivo .dict (diccionario) y lo pasa a un array, y luego lo va modificando y armando otro archivo pero xml, para importarlo luego en un mediawiki.
tiene muchas modificaciones en el medio y cosas raras.

este javascript lo que hace es transformar un texto a caracteres raros, es como un idioma indio, por eso van a ver ese codigo con signos de pregunta, salvo que tengan el browser safari o alguno con esos caracteres instalados.

entonces ese javascript lo que hace es recibir un texto y traducirlo a ese idioma.

lo que yo busco es pasarle a una funcion de php ese texto y que el return me devuelva los codigos , por ejemplo &#2316 ; &#2316 ; &#2316 ;
todas cosas asi son ... y eso despues yo lo grabo tambien en el xml.

aca podes ver el script original con el demo y para bajarlo:
http://www.iit.edu/~laksvij/language/ilc.zip
http://www.iit.edu/%7Elaksvij/language/sanskrit.html

aca funciona cuando clickes en el textbox de la izquierda o si cambias el texto, fijate.
  #4 (permalink)  
Antiguo 12/05/2008, 11:22
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Re: transformar este javascript a php ?

Es decir tienes los textos en indio pero en alfabeto occidental y quieres pasarlos a Sanskrit!!!

Bien si tienes la coleccion de codigos solo tendrás que seguir el modelo que te adjunto pero cambiando los codigos.... ("a"=>"अ" , "b"=>"ब्"...)

Código PHP:
function convertLatin1ToHtml($str) {
    
$html_entities = array (
        
"&" =>  "&amp;",     #ampersand  
        
"á" =>  "&aacute;",     #latin small letter a
        
"Â" =>  "&Acirc;",     #latin capital letter A
        
"â" =>  "&acirc;",     #latin small letter a
        
"Æ" =>  "&AElig;",     #latin capital letter AE
        
"æ" =>  "&aelig;",     #latin small letter ae
        
"À" =>  "&Agrave;",     #latin capital letter A
        
"à" =>  "&agrave;",     #latin small letter a
        
"Å" =>  "&Aring;",     #latin capital letter A
        
"å" =>  "&aring;",     #latin small letter a
        
"Ã" =>  "&Atilde;",     #latin capital letter A
        
"ã" =>  "&atilde;",     #latin small letter a
        
"Ä" =>  "&Auml;",     #latin capital letter A
        
"ä" =>  "&auml;",     #latin small letter a
        
"Ç" =>  "&Ccedil;",     #latin capital letter C
        
"ç" =>  "&ccedil;",     #latin small letter c
        
"É" =>  "&Eacute;",     #latin capital letter E
        
"é" =>  "&eacute;",     #latin small letter e
        
"Ê" =>  "&Ecirc;",     #latin capital letter E
        
"ê" =>  "&ecirc;",     #latin small letter e
        
"È" =>  "&Egrave;",     #latin capital letter E
//lo corto porque seria muy largo pero el principio es este :si:
        
"û" =>  "&ucirc;",     #latin small letter u
        
"Ù" =>  "&Ugrave;",     #latin capital letter U
        
"ù" =>  "&ugrave;",     #latin small letter u
        
"Ü" =>  "&Uuml;",     #latin capital letter U
        
"ü" =>  "&uuml;",     #latin small letter u
        
"Ý" =>  "&Yacute;",     #latin capital letter Y
        
"ý" =>  "&yacute;",     #latin small letter y
        
"ÿ" =>  "&yuml;",     #latin small letter y
        
"Ÿ" =>  "&Yuml;",     #latin capital letter Y
    
);

    foreach (
$html_entities as $key => $value) {
        
$str str_replace($key$value$str);
    }
    return 
$str;

Esto hara una conversion codigo a codigo pero creo que en tu version java trabaja con algo más...

Quim

Última edición por quimfv; 12/05/2008 a las 11:30
  #5 (permalink)  
Antiguo 12/05/2008, 11:37
 
Fecha de Ingreso: marzo-2007
Mensajes: 180
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: transformar este javascript a php ?

claro exacto, eso hace, pero ... lo "algo mas" es lo complicado, porque si despues de una vocal sigue otra vocal hace otra cosa, y cosas asi raras, segun como se combinan cambia cosas.
por eso queria ver de copiar ese codigo de js a php

si pueden ver el link del ejemplo lo que yo tendria seria el "type your text here" y necesitaria el "Equivalent html text" ... solo los codigos

que seria algo asi:

Código:
&#2346 ; &#2381 ; &#2352 ; &#2325 ; &#2366 ; &#2358 ; &#2381 ;
  #6 (permalink)  
Antiguo 12/05/2008, 11:53
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Re: transformar este javascript a php ?

Probaste con funciones nativas de PHP?, como:
utf8_encode
utf8_decode
htmlentities
htmlspecialchars
htmlspecialchars_decode
  #7 (permalink)  
Antiguo 12/05/2008, 12:03
 
Fecha de Ingreso: marzo-2007
Mensajes: 180
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: transformar este javascript a php ?

si panino esas las uso ahora para leer las letras por ejemplo a subrayada, o acentos raros.

pero este javascript lo que hace es algo raro
por ejemplo la palabra
Cita:
prakAz
la traduce a
Código:
&#2346 ; &#2381 ; &#2352 ; &#2325 ; &#2366 ; &#2358 ; &#2381 ;
y no quiere decir que la P es &#2346 ... quizas pr es un solo codigo digamos.

el tema es que no entiendo javascript entonces no puedo "copiar" las funciones que tienen esas funciones hechas para reproducir lo que hacen en php.
  #8 (permalink)  
Antiguo 12/05/2008, 13:33
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Re: transformar este javascript a php ?

Ah, en ese caso, quizá esto pueda ayudarte: http://dev.splitbrain.org/view/darcs...i/inc/utf8.php
  #9 (permalink)  
Antiguo 12/05/2008, 13:38
 
Fecha de Ingreso: marzo-2007
Mensajes: 180
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: transformar este javascript a php ?

pero eso no convierte a sanskrito ... sino a utf8 , q una funcion asi mas o menos ya tengo.
eso digamos que convierte por ejemplo una a subrayada como dije a un caracter raro con unicode

yo necesito que la palabra en latin comun me la traduzca a sanskrito con simbolos indios, pero eso tiene reglas, no se traduce letra a letra como hacen esas funciones.

prueben el link que puse, y prueben palabras y van a ver abajo el codigo html como cambia, ponga RR o rr o rraa, y cosas asi
  #10 (permalink)  
Antiguo 12/05/2008, 13:46
 
Fecha de Ingreso: marzo-2007
Mensajes: 180
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: transformar este javascript a php ?

miren las imagenes de estas 3 diferencias.








donde dice html equivalent text va cambiando , por ejemplo al final dice parivartan, si le agrego la "a" saca como uno codigo, pero si agrego la "m" agrega 2 codigos ...

por eso necesito ver que hace esta funcion bien para hacerla en php porque no es una simple traduccion uno a uno.
  #11 (permalink)  
Antiguo 13/05/2008, 04:37
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Re: transformar este javascript a php ?

Lo mejor seria convertir la función pero para hacerlo bien seguramente ademas de saber javascript habria que saber Sanskrit , pero en su defecto pudes usar la funcion javascript des de php:

En php generas lo siguiente:

Creas un 'converter.js' con el codigo que nos has pasado, fichero de texto que guardas en el mismo directorio que la pagina php, el 'converter.js' que baja del link que nos has pasado no funcionara ya que usa el formulario como origen y destino el tuyo no.



Código PHP:

echo   "<script src='converter.js' type='text/javascript'></script>";

echo 
"<script>";
echo 
"var texto=".$textoindio";";
echo 
"function traduce(txt){";
echo 
"document.getElementById('textoSanskrit').innerHTML=print_many_words(texto);
echo "
}";
echo "
</script>";

echo "</head>";
echo "<body onload='traduce(texto)'>";

echo "<span id='textoSanskrit'></span>"; 
De esta forma estas guardando el texto latin en la variable javascript texto, el onload del body ejecutara la funcion traduce que no hace mas que leer la variable texto la pasa a la función print_many_words y esta retorna la version html en sanskrit que saldra en el innerHtml del span 'textoSanskrit'.

No lo he puesto en practica pero tendria que funcionar.

Quim
  #12 (permalink)  
Antiguo 13/05/2008, 05:13
 
Fecha de Ingreso: marzo-2007
Mensajes: 180
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: transformar este javascript a php ?

quim te agradezco muchisimo, pero mira este link, dentro de ese codigo iria esto ...

http://www.forosdelweb.com/2382202-post3.html

por eso busco copiar ese js a php para meterlo dentro de las funciones que ya tengo en mi script.
  #13 (permalink)  
Antiguo 13/05/2008, 06:24
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Re: transformar este javascript a php ?

Si claro si lo ejecutas en el servidor ira mas rapido, pero si no tienes la funcion...

Lo que yo te propongo es hacer lo mismo que hacen en http://www.iit.edu/%7Elaksvij/language/sanskrit.html pero pasando el texto desde php. Si consigues la funcion en php mucho mejor claro.

Quim
  #14 (permalink)  
Antiguo 13/05/2008, 08:33
 
Fecha de Ingreso: marzo-2007
Mensajes: 180
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: transformar este javascript a php ?

el tema es que yo tengo que meterlo dentro de ese codigo por ejemplo
$sans=funcionqueconvierta($hk);

y despues meto ese $sans dentro del codigo que estoy metiendo al xml.
por eso necesito pasar el js a codigo php, pero que deje de ser js, tiene que ser completamente php, ya que para que dialogue js y php es un lio y me va a hacer mucho mas lento esto que ya es lentisimo
  #15 (permalink)  
Antiguo 13/05/2008, 08:47
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Re: transformar este javascript a php ?

No me acordaba que querias crear un xml en el servidor luego claro solo te sirve la funcion en php, o hacer la transformacion en el momento que se lee el xml.

Quim
  #16 (permalink)  
Antiguo 13/05/2008, 08:53
 
Fecha de Ingreso: marzo-2007
Mensajes: 180
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: transformar este javascript a php ?

lo primero seria saber las equivalencias por ejemplo vowels, consonants y letter_codes como se harian en php ? porque no parecen ser variables ni arrays.

despues esto que es ? en php no vi algo parecido

Cita:
re = new RegExp(vowels);
var
index = word.search(vowels);
new supongo que es como un objeto, pero el regexp y entre parentesis el nombre de una constante rara que se declara arriba ni idea
despues el word.search tampoco y asi con muchos comandos
  #17 (permalink)  
Antiguo 13/05/2008, 09:07
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Re: transformar este javascript a php ?

RegExp suena a regular expresions y los vowels seran las definiciones de las RegExp. Este concepto como sabras tambien existe en php.

? creo que es un comodin.

Si lees ingles este es un buen manual JavaScript Tutorial te pego cosas relacionadas... tiene ejemplos....


Quim

Cita:

JavaScript RegExp Object

What is RegExp

RegExp, is short for regular expression.

When you search in a text, you can use a pattern to describe what you are searching for. RegExp IS this pattern.

A simple pattern can be a single character.

A more complicated pattern consists of more characters, and can be used for parsing, format checking, substitution and more.

You can specify where in the string to search, what type of characters to search for, and more.

...


Cita:

search() Definition and Usage

The search() method is used to search a string for a specified value.
Syntax

stringObject.search(searchstring)


Parameter Description
searchstring Required. The value to search for in a string. To perform a case-insensitive search add an 'i' flag

Tips and Notes

Note: search() is case sensitive.

Note: The search() method returns the position of the specified value in the string. If no match was found it returns -1.
Example 1 - Standard Search

In the following example we will search for the word "W3Schools":

<script type="text/javascript">

var str="Visit W3Schools!";
document.write(str.search(/W3Schools/));

</script>

The output of the code above will be:

6

...

Última edición por quimfv; 13/05/2008 a las 09:15
  #18 (permalink)  
Antiguo 13/05/2008, 11:31
 
Fecha de Ingreso: marzo-2007
Mensajes: 180
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: transformar este javascript a php ?

muchas gracias, que lio entonces tengo, entender esto y ver como ir haciendolo de a poco en php :(
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:42.