2017-10-19 3 views
1

J'ai un fichier javascript sur mon serveur qui contient une fonction. Je voudrais développer une API REST pour se connecter à ce serveur, lancer la fonction javascript et renvoyer la sortie.Comment appeler la fonction Javascript à partir du fichier PHP

Est-il possible d'appeler une fonction javascript à partir d'un fichier php?

J'ai lu this mais il ne répond pas à ma question, car mon fichier js est hébergé sur le même serveur que le fichier php. Les extensions V8Js est ce que je recherche?

Merci

EDIT: la fonction js ressemble à ceci:

function (line, userWeight, weightunit){ 

    //logic is here 

    var computed = { 
       userLengthFtin: userLengthFtin, 
       userLevel: userLevel, 
       proId: line['id'], 
       proLengthFeetin: proLengthFeetin, 
       proThick: proThickFtin, 
       weightunit: weightunit 
      }; 

      return computed; 
     } 
+0

Que fait la fonction JS? Pouvez-vous l'afficher? – mpen

+0

Non, je suis désolé ne peut pas afficher la fonction réelle, mais je vais ajouter son formulaire dans la question – Louis

+0

Alors, il calcule juste quelque chose? Et vous ne pouvez pas exécuter cela directement sur le client? Je le porterais sur PHP si vous le pouvez, sinon configurez un petit serveur de nœuds pour gérer les requêtes d'API pour cela, et nginx transmet votre point de terminaison spécial au nœud au lieu de PHP. Ensuite, vous n'avez pas à manipuler JS à l'intérieur de PHP et vous pouvez ajouter des points de terminaison supplémentaires dans Node si vous en avez besoin. – mpen

Répondre

2

Est-il possible d'appeler une fonction javascript à partir d'un fichier php?

Vous auriez besoin de remettre des choses à d'autres logiciels qui peuvent exécuter JS. Cela peut être dû à un bombardement ou à une bibliothèque telle que Selenium ou la bibliothèque V8js que vous avez trouvée. Quoi que vous choisissiez, il devrait être capable de gérer les besoins particuliers du JS (par exemple, si le JS s'attend à être intégré dans une page Web avec accès à un DOM et à toutes les API fournies par un navigateur Web, alors vous ne pouviez pas simplement l'exécuter avec Node.js).

Il serait probablement plus simple de réécrire la fonction en PHP.

+0

Merci, je vais essayer V8Js ou peut-être le réécrire en php ... – Louis