Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Programmeren

[shell script] input error bij aanroep in PHP

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 "
    Usage : $0 <file.docx>
    "
    exit 1
    }

    [ $# != 1 ] && usage

    if ! [ -f "$1" -o -r "$1" ]
    then
    echo -e "
    Can'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 "
    Please copy <$1> somewhere before running the script.
    "
    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.