-4

I have a hosting with a PHP file which gets the request, take a string from it and have to give to Go (GoLang) script. How could I do it?

package main My GO script:

package main

import (
"log"
"fmt"
"io/ioutil"
"strings"
ivona "github.com/jpadilla/ivona-go"
)

func main() {
    client := ivona.New("GDNAICTDMLSLU5426OAA", "2qUFTF8ZF9wqy7xoGBY+YXLEu+M2Qqalf/pSrd9m")
    text, err := ioutil.ReadFile("/Users/Igralino/Desktop/text.txt")
    if err != nil {
        log.Fatal(err)
    }

    arrayOfParagraphs := strings.Split(string(text), "\n\n")
    i := 0
    for _,paragraph := range arrayOfParagraphs {
        paragraph = strings.TrimSpace(paragraph)
        if (len(paragraph) < 1) { // against empty lines
            continue
        }
        log.Printf("%v\n", paragraph)
        options := ivona.NewSpeechOptions(paragraph)
        options.Voice.Language = "ru-RU"
        options.Voice.Name = "Maxim"
        options.Voice.Gender = "Male"
        options.OutputFormat.Codec = "MP3"
        r, err := client.CreateSpeech(options)
        if err != nil {
            log.Fatal(err)
        }

        i++
        file := fmt.Sprintf("/Users/Igralino/Desktop/tts%04d.MP3", i) // files like 0001.ogg
        ioutil.WriteFile(file, r.Audio, 0644)
    }
}
I159
  • 29,741
  • 31
  • 97
  • 132
  • 1
    Welcome to Stackoverflow! Learn [ask] before you do so. When asking a question, be [on topic](http://stackoverflow.com/help/on-topic) and be sure to provide a [mcve]. – Nytrix Dec 29 '16 at 18:21

1 Answers1

1

Go is not a scripting language! It is a compiled one.

Compiled languages

A compiled language is a programming language whose implementations are typically compilers (translators that generate machine code from source code), and not interpreters (step-by-step executors of source code, where no pre-runtime translation takes place).

So usage of "script" term is dramatically wrong!

How to communicate with Go program from other programs.

You must build and install your program first. This is easy if you already prepared and configured your Go environment:

$go install github.com/user/hello

Than you can invoke it from command line since it is installed to OS.

$hello

If your program should expect arguments use flag package to declare it.

$hello -name <value>

Obviously you can call it from PHP with system function or whatever is possible (I don't know nothing about PHP).

Other way is to design your Go program as a daemon and communicate with it directly through a port for example. Your Go program must run continuously and listen for a port. A good answer about daemonization of Go programs.

Community
  • 1
  • 1
I159
  • 29,741
  • 31
  • 97
  • 132