diff --git a/README.md b/README.md
index 97a1678..a152ed5 100644
--- a/README.md
+++ b/README.md
@@ -2,11 +2,11 @@
mySQL image downloader / replacer wizard
-v.0.1 alpha
+v.0.2 beta adopted for php8
DWTWL license https://soundragon.su/license/license.html
-This is alpha version written for specific needs. If you want complete and expanded version of this script, then make the request.
+This is beta version written for specific needs. If you want complete and expanded version of this script, then make the request.
@@ -21,4 +21,4 @@ Using:
/mysqlim/
3. Add write privilegies for this directory.
4. Login to wizard by web-browser:
-http://yourserver.com/mysqlim/
+http://yourserver.com/mysqlim/index.php
diff --git a/exec.php b/exec.php
index b2a0581..4a81a3a 100644
--- a/exec.php
+++ b/exec.php
@@ -1,7 +1,8 @@
0) $result=$fileprefix.pathinfo($URL)['basename'];
else {
- unlink ($fileprefix.rawurldecode(pathinfo($URL)['basename']));
- $result=false;
- }
+ unlink ($fileprefix.rawurldecode(pathinfo($URL)['basename']));
+ $result=false;
+ }
}
} else {
file_put_contents(rawurldecode(pathinfo($URL)['basename']), file_get_contents($URL));
@@ -67,22 +68,40 @@ $htmlprefix=$indatacsv[11];
$fixalready=$indatacsv[12];
$fixundownload=$indatacsv[13];
$correctimagenumber=$indatacsv[14];
+$filtcolumn=$indatacsv[15];
+$filtvalue=$indatacsv[16];
+$ahrefparents=$indatacsv[17];
+$webarchived=$indatacsv[18];
+
unlink ("indata.csv");
-if ($logmessage=="emptyindata") echo "Can't read data file, please check write pirivlegies for ",$execdir," directory";
+if (isset($logmessage) && $logmessage=="emptyindata")
+ echo "Can't read data file, please check write pirivlegies for ",$execdir," directory";
chdir("../".$dirname);
-if ($subdir) chdir ($subdir);
- $dbconnection=mysqli_connect($dbhost,$dbuser,$dbpass,$dbname);
- mysqli_set_charset($dbconnection,'utf8');
- $resulttable=mysqli_query($dbconnection,"SELECT * FROM ".$dbtable);
- $totalstatus="started";
- $updatedurls=0;
- $failedtoupdate=0;
- $deletedurls=0;
- $rawsedit=0;
- SaveStatus ($totalstatus,$rawsedit,$updatedurls,$failedtoupdate,$deletedurls,$execdir);
- while($row=mysqli_fetch_assoc($resulttable)){
- $originalcontent=$row[$dbcolumn];
+if ($subdir)
+ chdir ($subdir);
+$dbconnection=mysqli_connect($dbhost,$dbuser,$dbpass,$dbname);
+mysqli_set_charset($dbconnection,'utf8');
+$resulttable=mysqli_query($dbconnection,"SELECT * FROM ".$dbtable);
+$totalstatus="started";
+$updatedurls=0;
+$failedtoupdate=0;
+$deletedurls=0;
+$rawsedit=0;
+SaveStatus ($totalstatus,$rawsedit,$updatedurls,$failedtoupdate,$deletedurls,$execdir);
+$filteredpostnumber=0;
+while($row=mysqli_fetch_assoc($resulttable)){
+ if (!empty($filtcolumn) && !empty($filtvalue)) {
+ if ($row[$filtcolumn] == $filtvalue) {
+ if (!empty($row[$dbcolumn]))
+ $originalcontent=$row[$dbcolumn];
+ $filteredpostnumber++;
+ }
+ } else { if (!empty($row[$dbcolumn]))
+ $originalcontent=$row[$dbcolumn];
+ $filteredpostnumber++;
+ }
+ if (isset($originalcontent)) {
$newcontent=$originalcontent;
if ($fixbroken) {
$contentpost=new DOMDocument();
@@ -106,10 +125,25 @@ if ($subdir) chdir ($subdir);
$imageTags=$contentpost->getElementsByTagName('img');
for ($i = $imageTags->length; --$i >= 0; ) { // http://php.net/manual/class.domnodelist.php#83390
$tag = $imageTags->item($i);
- $imgsrctag=$tag->getAttribute('src');
+ if ($ahrefparents) {
+ $aofimg=$contentpost->importNode($tag->parentNode, true);
+ if (isset($aofimg)) {
+ $ahreofimg=$aofimg->getAttribute('href');
+ if ($ahreofimg=="") $ahreofimg=$tag->getAttribute('src');
+ $imgsrctag=$ahreofimg;
+ }
+ } else $imgsrctag=$tag->getAttribute('src');
$parsedimgsrctag=parse_url($imgsrctag);
if ((!empty($parsedimgsrctag['host'])&&!empty($parsedimgsrctag['path']))&&(($parsedimgsrctag['scheme']=="http")||($parsedimgsrctag ['scheme']=="https"))&&(!($parsedimgsrctag['host']==$servername))) {
- $newimgsrc=DownloadFopen($imgsrctag);
+ if ($webarchived) {
+ $parsedimgsrctagarch=parse_url($tag->getAttribute('src'));
+ if ($parsedimgsrctagarch['host']==$webarchived) {
+ $webarchivelink="https://web.archive.org/web/20200101id_/".$tag->getAttribute('src');
+ $newimgsrc=DownloadFopen($webarchivelink);
+ } else
+ $newimgsrc=DownloadFopen($imgsrctag);
+ } else
+ $newimgsrc=DownloadFopen($imgsrctag);
if ($newimgsrc) {
if ($htmlprefix=="http") {
$srcbase="http://".$servername."/".$dirname."/";
@@ -120,7 +154,7 @@ if ($subdir) chdir ($subdir);
}
if ($subdir) $srcbase=$srcbase.rawurlencode($subdir)."/";
$newimgsrc=$srcbase.$newimgsrc;
- $newcontent=str_replace($imgsrctag,$newimgsrc,$newcontent);
+ $newcontent=str_replace($tag->getAttribute('src'),$newimgsrc,$newcontent);
unset($newimgsrc);
$updatedurls++;
SaveStatus ($totalstatus,$rawsedit,$updatedurls,$failedtoupdate,$deletedurls,$execdir);
@@ -138,9 +172,10 @@ if ($subdir) chdir ($subdir);
$rawsedit++;
SaveStatus ($totalstatus,$rawsedit,$updatedurls,$failedtoupdate,$deletedurls,$execdir);
}
- $totalstatus="finished";
- SaveStatus ($totalstatus,$rawsedit,$updatedurls,$failedtoupdate,$deletedurls,$execdir);
- echo $updatedurls," urls was downloaded and updated, ",$failedtoupdate," urls was failed to update"," \n";
- if ($fixbroken or $fixundownload) echo $deletedurls, " tags was deleted \n";
+}
+$totalstatus="finished";
+SaveStatus ($totalstatus,$rawsedit,$updatedurls,$failedtoupdate,$deletedurls,$execdir);
+echo $updatedurls," urls was downloaded and updated, ",$failedtoupdate," urls was failed to update"," \n";
+if ($fixbroken or $fixundownload) echo $deletedurls, " tags was deleted \n";
-?>
\ No newline at end of file
+?>
diff --git a/index.php b/index.php
index 2e65d1d..3f169b8 100644
--- a/index.php
+++ b/index.php
@@ -1,7 +1,8 @@
\n";
$_SESSION["subdir"]="images";
echo "
\n";
if ($_SESSION["error"]) echo $_SESSION["error"]," \n";
@@ -132,19 +176,31 @@ function PageView() {
if ($_SESSION["details"]=="step2") {
echo "green links will be try to downloaded, yellow (already downloaded) and red (broken) - not:\n";
foreach ($_SESSION["imgsrcs"] as $postnum=>$postimgs) {
- echo ($postnum+1),": \n";
- foreach ($postimgs as $imgs) {
+ echo ($postnum+1);
+ if (!empty($_SESSION["IDcolumn"]))
+ echo " (ID ", $_SESSION["imgsrcsID"][$postnum],")";
+ echo ": \n";
+ foreach ($postimgs as $imgnum=>$imgs) {
$testurl=parse_url($imgs);
if ((!empty($testurl['host'])&&!empty($testurl['path']))&&(($testurl['scheme']=="http")||($testurl ['scheme']=="https"))&&(!($testurl['host']==$_SERVER['SERVER_NAME']))) echo " ";
- else if ($testurl['host']==$_SERVER['SERVER_NAME']) echo " ";
- else echo " ";
- echo $imgs," \n";
+ else if (isset($testurl['host']) && ($testurl['host']==$_SERVER['SERVER_NAME']))
+ echo " ";
+ else echo " ";
+ echo $imgs,", (";
+ if ($_SESSION["imgsrcahrefs"][$postnum][$imgnum]==$_SESSION["imgsrcs"][$postnum][$imgnum])
+ echo "";
+ else echo "";
+ echo $_SESSION["imgsrcahrefs"][$postnum][$imgnum];
+ if ($_SESSION["imgsrcahrefs"][$postnum][$imgnum]==$_SESSION["imgsrcs"][$postnum][$imgnum])
+ echo "";
+ else echo "";
+ echo ") \n";
}
echo "\n";
}
}
}
-// Approve page
+// Approve page view
if ($_SESSION["step"]==3) {
echo "STEP 4: approve processing: \n";
echo "
\n";
@@ -158,77 +214,90 @@ function PageView() {
if ($_SESSION["subdir"]) echo "/",$_SESSION["subdir"];
echo "/ \n";
}
- if ($_SESSION["fixbroken"]) echo $_SESSION["brokenimagenumber"]," tags will be deleted \n";
+ if ($_SESSION["ahrefparents"])
+ echo "parent a hrefs will be downloaded (if exists) \n";
+ if ($_SESSION["webarchived"])
+ echo "this domain will be downloaded via webarchive: ", $_SESSION["webarchived"], " \n";
+ if ($_SESSION["fixbroken"])
+ echo $_SESSION["brokenimagenumber"]," tags will be deleted \n";
echo " are you sure to proceed? \n";
echo " \n";
echo "
\n";
}
-// Start page
+// Start page view
if ($_SESSION["step"]==4) {
$_SESSION["error"]="";
echo "RESULT: \n";
if ($_SESSION["subdir"]) {
- mkdir($_SESSION["subdir"]);
- if (!chdir($_SESSION["subdir"])) $_SESSION["error"]="error to apperate with new directory";
+ if (!is_dir($_SESSION["subdir"]))
+ mkdir($_SESSION["subdir"]);
+ if (!chdir($_SESSION["subdir"]))
+ $_SESSION["error"]="can't to operate with new directory";
} else {
- if (mkdir ("testimuploaddir")) rmdir("testimuploaddir");
- else $_SESSION["error"]="error to apperate with directory, check privilegies";
+ if (mkdir ("testimuploaddir"))
+ rmdir("testimuploaddir");
+ else $_SESSION["error"]="can't to operate with directory, check privilegies";
+ }
+ if ($_SESSION["error"])
+ echo $_SESSION["error"]." \n";
+ else {
+ chdir(__DIR__);
+ $csvsessiondata[]=$_SESSION["dbhost"];
+ $csvsessiondata[]=$_SESSION["dbuser"];
+ $csvsessiondata[]=$_SESSION["dbpass"];
+ $csvsessiondata[]=$_SESSION["dbname"];
+ $csvsessiondata[]=$_SESSION["dbtable"];
+ $csvsessiondata[]=$_SESSION["dbcolumn"];
+ $csvsessiondata[]=$_SERVER['SERVER_NAME'];
+ $csvsessiondata[]=$_SESSION["fixbroken"];
+ $csvsessiondata[]=$_SESSION["dirname"];
+ $csvsessiondata[]=$_SESSION["subdir"];
+ $csvsessiondata[]=$_SESSION["downloadtype"];
+ $csvsessiondata[]=$_SESSION["htmlprefix"];
+ $csvsessiondata[]=$_SESSION["fixalready"];
+ $csvsessiondata[]=$_SESSION["fixundownload"];
+ $csvsessiondata[]=$_SESSION["correctimagenumber"];
+ $csvsessiondata[]=$_SESSION["filtcolumn"];
+ $csvsessiondata[]=$_SESSION["filtvalue"];
+ $csvsessiondata[]=$_SESSION["ahrefparents"];
+ $csvsessiondata[]=$_SESSION["webarchived"];
+ $fhandle=fopen("indata.csv","w");
+ fputcsv($fhandle,$csvsessiondata);
+ fclose($fhandle);
+ exec("php -q exec.php < /dev/null > exec.log &");
+ echo "Process started, it's take some time. Please press Details for check status \n";
}
- if ($_SESSION["error"]) echo $_SESSION["error"]." \n";
- else {
- chdir(__DIR__);
- $csvsessiondata[]=$_SESSION["dbhost"];
- $csvsessiondata[]=$_SESSION["dbuser"];
- $csvsessiondata[]=$_SESSION["dbpass"];
- $csvsessiondata[]=$_SESSION["dbname"];
- $csvsessiondata[]=$_SESSION["dbtable"];
- $csvsessiondata[]=$_SESSION["dbcolumn"];
- $csvsessiondata[]=$_SERVER['SERVER_NAME'];
- $csvsessiondata[]=$_SESSION["fixbroken"];
- $csvsessiondata[]=$_SESSION["dirname"];
- $csvsessiondata[]=$_SESSION["subdir"];
- $csvsessiondata[]=$_SESSION["downloadtype"];
- $csvsessiondata[]=$_SESSION["htmlprefix"];
- $csvsessiondata[]=$_SESSION["fixalready"];
- $csvsessiondata[]=$_SESSION["fixundownload"];
- $csvsessiondata[]=$_SESSION["correctimagenumber"];
- $fhandle=fopen("indata.csv","w");
- fputcsv($fhandle,$csvsessiondata);
- fclose($fhandle);
- exec("php -q exec.php < /dev/null > exec.log &");
- echo "Process started, it's take some time. Please press Details for check status \n";
- }
echo "