» Poradna » Programy

PHP pomoc

 |   |  Microsoft Windows 10 Chrome 73.0.3683.103

Zdravím všechny,převzal jsem script po bývalém kolegovi a potřeboval bych ho lehce upravit, jakmile provedu úpravu tak script nefunguje jak má. Jedná se o kopírování upravených fotek přejmenovaných pomocí číselníku.<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <meta name="generator" content="PSPad editor, www.pspad.com"> <title></title> </head> <body> <?php function checkCode($retezec) { return ereg ("^[a-zA-Z0-9]+\_00[0-9]+\.jpg$",$retezec); } function recursiveArraySearch($haystack, $needle, $index = null) { $aIt = new RecursiveArrayIterator($haystack); $it = new RecursiveIteratorIterator($aIt); while($it->valid()) { if (((isset($index) AND ($it->key() == $index)) OR (!isset($index))) AND ($it->current() == $needle)) { return $aIt->key(); } $it->next(); } return false; } $dirpath_out ="newTPOMM/_ZPRACUJ"; $dirpath_in = "in/"; $files_cpy_count=0; $files_count = 0; $files_copied_count=0; $files_dir=Array(); $filename_full = "ciselnik.csv"; $filedata = fopen($filename_full,"r"); $extension = ".jpg"; $i=1; // index radku $j=1; // index sloupce echo "<b>INFORMACE O CSV SOUBORU</b><br>"; // zjisti název souboru $filename = basename($filename_full, ".php"); echo 'název: '."&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;".$filename."<br>"; // zjisti velikost souboru $filesize = filesize($filename); echo 'velikost: '."&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;".$filesize."b<br>"; // vytahne si data z csv do datoveho pole while (!feof($filedata)) { $buffer = fgets($filedata); $explodedrec = explode(";",$buffer); foreach ($explodedrec as $singlerec) { $articletemplate[$i][$j]= rtrim(strtolower($singlerec)); $j++; } $i++; $j=1; } fclose($filedata); $i--; // zobrazi pocet záznamů v poli echo "záznamů:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;".$i."<br>"; echo "<hr>"; $i=1; $j=1; $directory = opendir("in"); while ($file_dir = readdir($directory)) { $files_dir[$i]=$file_dir; //echo $file_dir."<br>"; //echo $files_dir[$i]."<br>"; $i++; } //print_r($files_dir); $i--; $files_count = $i-2; $duplicate=0; for ($k=3;$k<=$i;$k++) { // pokud plati, co artikl, to jedna fotka if (!strpos($files_dir[$k],"_")) { //echo "jednoho typu<br>"; $index = strrpos($files_dir[$k],"."); $value = strtolower(substr($files_dir[$k],0,$index)); // echo "<b>value:".$value."</b><br>"; // podivat na 99952A $key = recursiveArraySearch($articletemplate,"".$value); // echo $key."<br>"; $src = $dirpath_in.$files_dir[$k]; if (!$key) echo "položka1: <b>".$value."</b> v šabloně nenalezena!<br>"; else { $dest = $dirpath_out.$articletemplate[$key][1].$extension; if (file_exists($dest)) { //echo "existuje<br>"; while (file_exists($dest)) { $duplicate++; $dest = $dirpath_out.$articletemplate[$key][1]."_".$duplicate.$extension; } $duplicate=0; } else { //echo "neexistuje<br>"; $duplicate=0; } //echo $src." "; echo $value." >>> ".$dest."<br>"; copy($src,$dest); $files_copied_count++; //echo "duplicita: ".$duplicate."<br>"; } } else { $duplicate=0; //echo "vice jednoho typu<br>"; $index1 = strrpos($files_dir[$k],"."); $index2 = strrpos($files_dir[$k],"_"); $index=$index1-$index2; if ($index==2) $value = strtolower(substr($files_dir[$k],0,$index1-2)); if ($index==3) $value = strtolower(substr($files_dir[$k],0,$index1-3)); //echo "<b>index/index2/value:".$index1."/".$index2."/".$value."</b><br>"; $key = recursiveArraySearch($articletemplate,"".$value); //echo $key."<br>"; if (!$key) echo "položka2: <b>".$value."</b> v šabloně nenalezena!<br>"; else { $src = $dirpath_in.$files_dir[$k]; if ($index==2) $dest = $dirpath_out.$articletemplate[$key][1].substr($files_dir[$k],$index2,6); if ($index==3) $dest = $dirpath_out.$articletemplate[$key][1].substr($files_dir[$k],$index2,7); //echo $src." "; echo $value." >>> ".$dest."<br>"; copy($src,$dest); //rename($dirpath_out.$articletemplate[$key][1]."_001.jpg",$dirpath_out.$articletemplate[$key][1].".jpg"); $files_copied_count++; } } } echo "zkopírováno &nbsp;".$files_copied_count." z ".$files_count; ?> </body></html>script beží na serveru, který má adresu 192.168.2.34 a upravené soubory potřebuji dostat na NAS 192.168.2.55:5001/foto.../_Novinky/_NEW_TP..../_ZPRACUJDěkuji za případnou pomoc nebo nasměrování P.

Odpovědi na otázku

 |   |  Microsoft Windows 7 Firefox 66.0

1. Nezformátované se to nedá číst.2. Toto je poRADna, dávají se tady rady a odpovídá se na otázky. Žádnou otázku nevidím. 3. Ty hledáš řešení. Pokud to nezvládáš sám, někoho si na to najmi (a zaplať). Toto by měl zvládnout i šikovný student.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Android AppleMAC-Safari 5.0

Na webtrh.cz si dejte poptávku po nějakém PHP programátorovi, taková zakázka je mimo rozsah PC poradny. Někdo na to bude muset sednout, prolézt celý ten kód a opravit. A tohle zadarmo fakt nikdo dělat nebude.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Chrome 73.0.3683.103

Před řádek copy($src,$dest);bych zkusil vložit řádek:$dest="//192.168.2.55:5001/foto.../_Novinky/_NEW_TP..../_ZPRACUJ";samozřejmě bez těch teček. Skript ale přestane kopírovat do předchozího místa, je to tvůj záměr?

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Chrome 73.0.3683.103

Má tam páva k zápisu každý, není potřeba zadávat jméno, heslo?

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Chrome 73.0.3683.103

ano může do něho kopírovat nebo nemusí, jinak se jedná o namapovaný síťový disk ke kterému je přihlášen na serveru admin účet

Souhlasím  |  Nesouhlasím  |  Odpovědět
 | Android Chrome 34.0

Buď to kopírování dělej přes exec a xcopy (to by bylo asi nejjednodušší) nebo na tu externí ip hoď nějaký přijímací php skript nebo to tam kopíruj přes ftp a další možnosti by se dali taky vymyslet.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 | Android Chrome 34.0

Aha, tak ono by to mělo jít přecejenom i přes to copy v php

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Chrome 73.0.3683.103

Pokud po tvojí úpravě nefunguje, tak jsi to asi upravil špatně. Ale ten kód nehodlám číst a zjišťovat co jsi tam zmastil.

Souhlasím  |  Nesouhlasím  |  Odpovědět

Související témata: W3C, Echo, Index, Filename, Meta, Return false, Generator


Určitě si přečtěte

Dubnové aktualizace Windows se nepovedly. Způsobují zamrzání systému

Dubnové aktualizace Windows se nepovedly. Způsobují zamrzání systému

** V úterý začal Microsoft uvolňovat dubnové kumulativní aktualizace ** Netrvalo dlouho a uživatelé začali hlásit první potíže ** Nejčastěji jde o zpomalení a zamrzání systému

Karel Kilián | 135

Šmírování na Street View: Koukněte se, co zachytily kamery Googlu

Šmírování na Street View: Koukněte se, co zachytily kamery Googlu

Google stále fotí celý svět do své služby Street View. A novodobou zábavou je hledat v mapách Googlu vtipné záběry. Podívejte se na výběr nejlepších!

redakce | 47

Modelářský zázrak: Maketa raketoplánu Columbia, která létá jako skutečná raketa

Modelářský zázrak: Maketa raketoplánu Columbia, která létá jako skutečná raketa

** Model raketoplánu Columbia od českého konstruktéra umí i létat ** Obdivuhodný model si vzal 1600 hodin práce ** Podívejte se na fotografie ze stavby a prvního letu

Karel Jeřábek | 25

Windows 10 budou mít kompletní linuxové jádro. Zatím jen pro vývojáře

Windows 10 budou mít kompletní linuxové jádro. Zatím jen pro vývojáře

** Desítky si budou ještě více rozumět s Linuxem ** V létě získají jeho jádro pro vývojáře ** Microsoft představí také Windows Terminal

Jakub Čížek | 83



Aktuální číslo časopisu Computer

Velký test androidů do 6 500 Kč

Tipy na starší foťáky za super cenu

Důkladný test sportovních kamer

Dárek pro každého: první vydání Computeru