Vraag & Antwoord

Programmeren

[shell script] input error bij aanroep in PHP

Anoniem
mosymuis
2 antwoorden
  • Ik probeer in PHP een script te gebruiken dat .docx Word documenten omzet naar plain text files. Het script is door een serverbeheerder geïnstalleerd op de dedicated Linux server, maar werkt nog niet vanuit PHP. Ik heb de testfile [i:e893df3bb8]cv.docx[/i:e893df3bb8] in dezelfde map geplaatst als de scripts.

    [code:1:e893df3bb8]echo exec('/usr/local/docx2txt/docx2txt.sh cv.docx');[/code:1:e893df3bb8]
    geeft als resultaat:

    [code:1:e893df3bb8]Can't read input file ![/code:1:e893df3bb8]
    het SH script leest als volgt:

    [code:1:e893df3bb8]#!/usr/bin/env bash

    MYLOC=`dirname "$0"` # invoked perl script docx2txt.pl is expected here.

    function usage ()
    {
    echo -e "\nUsage : $0 <file.docx>\n"
    exit 1
    }

    [ $# != 1 ] && usage

    if ! [ -f "$1" -o -r "$1" ]
    then
    echo -e "\nCan't read input file <$1>!"
    exit 1
    fi


    TEXTFILE=${1/%.docx/.txt}
    [ "$1" == "$TEXTFILE" ] && TEXTFILE="$1.txt"


    #
    # $1 : filename to check for existence
    # $2 : message regarding file
    #
    function check_for_existence ()
    {
    if [ -f "$1" ]
    then
    read -p "overwrite $2 <$1> [y/n] ? " yn
    if [ "$yn" != "y" ]
    then
    echo -e "\nPlease copy <$1> somewhere before running the script.\n"
    echeck=1
    fi
    fi
    }

    echeck=0
    check_for_existence "$TEXTFILE" "Output text file"
    [ $echeck -ne 0 ] && exit 1

    #
    # Invoke perl script to do the actual text extraction
    #

    "$MYLOC/docx2txt.pl" "$1" "$TEXTFILE"
    if [ $? == 0 ]
    then
    echo "Text extracted from <$1> is available in <$TEXTFILE>."
    else
    echo "Failed to extract text from <$1>!"
    fi[/code:1:e893df3bb8]
    en het bijbehorende [i:e893df3bb8]docx2txt.pl[/i:e893df3bb8] is ongewijzigd aanwezig in dezelfde map. Waar moet ik dit probleem zoeken?
  • Paar ideetjes:
    - volledig pad naar het bestand aangeven
    - rechten bekijken

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.