Created
February 10, 2022 10:24
-
-
Save nextab/5c6cc992c06b76d754e2d8cbca3a60bb to your computer and use it in GitHub Desktop.
Dies ist ein wenig Beispiel-Code, mit dem über PHP in ein File auf dem Webserver geschrieben wird.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| function csv_update_action() { | |
| $option_name = 'ots_points_updated' ; | |
| $update_date = time(); | |
| if ( get_option( $option_name ) !== false ) { | |
| // The option already exists, so we just update it. | |
| update_option( $option_name, $update_date ); | |
| } else { | |
| // The option hasn't been added yet. We'll add it with $autoload set to 'no'. | |
| $deprecated = null; | |
| $autoload = 'no'; | |
| add_option( $option_name, $update_date, $deprecated, $autoload ); | |
| } | |
| $csv_url = $_POST['csv_url']; | |
| $replace_url = get_home_url() . "/"; | |
| $csv_url = get_home_path() . str_replace($replace_url,"",$csv_url); | |
| // echo '<p style="margin-top: 20px;"><strong>URL der übermittelten csv Datei: </strong>' . $csv_url . '</p>'; | |
| /* | |
| $csvArray = ImportCSV2Array($csv_url); | |
| foreach ($csvArray as $row) | |
| { | |
| echo "<p>" & $row['column1'] & "</p>"; | |
| echo "<p>" & $row['column2'] & "</p>"; | |
| echo "<p>" & $row['column3'] & "</p>"; | |
| } | |
| */ | |
| if (substr($csv_url, -4) != ".csv") { echo "<p><strong>Fehler! Es handelt sich um keine gültige Datei (.csv wird verlangt)!</strong></p>"; } else { | |
| $row = 1; | |
| if (($handle = utf8_fopen_read($csv_url)) !== FALSE) { | |
| // echo "handle konnte geöffnet werden"; | |
| $excluded_users_id = 0; | |
| $excluded_users = array(); | |
| while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) { | |
| $num = count($data); | |
| // echo "<p> $num Felder in Zeile $row: <br /></p>\n"; | |
| for ($c=0; $c < $num; $c++) { | |
| if($row == 1) { | |
| if ($c == 0) { | |
| echo "<h3>Header-Abgleich:</h3><p>"; | |
| } | |
| switch($data[$c]) { | |
| case "FirmaAListe": | |
| $firma_id = $c; | |
| echo "Spalte " . $c . ": Name der Firma (" . $data[$c] . ")<br />"; | |
| break; | |
| case "Vorname": | |
| $vorname_id = $c; | |
| echo "Spalte " . $c . ": Vorname (" . $data[$c] . ")<br />"; | |
| break; | |
| case "Name": | |
| $nachname_id = $c; | |
| echo "Spalte " . $c . ": Nachname (" . $data[$c] . ")<br />"; | |
| break; | |
| case "COSSyID": | |
| $cossyid_id = $c; | |
| echo "Spalte " . $c . ": COSSy ID (" . $data[$c] . ")<br />"; | |
| break; | |
| case "TelefonListe": | |
| $telefon_id = $c; | |
| echo "Spalte " . $c . ": Telefonnummer (" . $data[$c] . ")<br />"; | |
| break; | |
| case "PLZListe": | |
| $plz_id = $c; | |
| echo "Spalte " . $c . ": PLZ (" . $data[$c] . ")<br />"; | |
| break; | |
| case "OrtListe": | |
| $ort_id = $c; | |
| echo "Spalte " . $c . ": Ort (" . $data[$c] . ")<br />"; | |
| break; | |
| case "StraßeListe": | |
| $strasse_id = $c; | |
| echo "Spalte " . $c . ": Straße (" . $data[$c] . ")<br />"; | |
| break; | |
| case "StrasseListe": | |
| $strasse_id = $c; | |
| echo "Spalte " . $c . ": Straße (" . $data[$c] . ")<br />"; | |
| break; | |
| case "Level aktuell": | |
| $ots_level_id = $c; | |
| echo "Spalte " . $c . ": Aktueller OTS Level (" . $data[$c] . ")<br />"; | |
| break; | |
| case "Sum_Punkte": | |
| $ots_punkte_aktuell_id = $c; | |
| echo "Spalte " . $c . ": Aktuelle Anzahl OTS Punkte (" . $data[$c] . ")<br />"; | |
| break; | |
| case "Sum_Punkte Eingang": | |
| $ots_punkte_lifetime_id = $c; | |
| echo "Spalte " . $c . ": Anzahl der insgesamt gesammelten OTS Punkte (ohne Abzüge) (" . $data[$c] . ")<br />"; | |
| break; | |
| case "Sum_Punkte Ausgang": | |
| $ots_punkte_redeemed_id = $c; | |
| echo "Spalte " . $c . ": Anzahl der eingelösten OTS Punkte (" . $data[$c] . ")<br />"; | |
| break; | |
| case "Punkte Quartal": | |
| $ots_punkte_quarter_id = $c; | |
| echo "Spalte " . $c . ": Anzahl der in diesem Quartal gesammelten OTS Punkte (" . $data[$c] . ")<br />"; | |
| break; | |
| case "StoreID": | |
| $cossyid_id = $c; | |
| echo "Spalte " . $c . ": COSSy ID / Store ID (" . $data[$c] . ")<br />"; | |
| break; | |
| default: | |
| echo "Spalte " . $c . " (" . $data[$c] . ") konnte nicht zugeordnet werden!<br />"; | |
| } | |
| if ($c == $num-1) echo "</p><hr />"; | |
| } else { | |
| $ots_userliste_args = array( | |
| 'orderby' => 'ID', | |
| 'exclude' => $excluded_users | |
| ); | |
| $ots_userliste = get_users($ots_userliste_args); | |
| // if ($c == 1) echo "<h2>Beginn User-Loop</h2><p>"; | |
| foreach ($ots_userliste as $aktueller_ots_store) { | |
| // echo "<p>Login-Name des aktuellen Stores: " . $aktueller_ots_store->user_login . "</p>"; | |
| // echo "<p>COSSy ID des Stores aus dem .csv File: " . $data[$cossyid_id] . "</p>"; | |
| if ($aktueller_ots_store->user_login == $data[$cossyid_id]) { | |
| // echo "<p>Übereinstimmung beim Laden " . $data[$firma_id] . "</p>"; | |
| echo "<p>" . zuweisung_ots_usergroup_vorhanden($aktueller_ots_store->id, $data[$cossyid_id]) . "</p>"; | |
| update_user_meta($aktueller_ots_store->id,'ots_level', $data[$ots_level_id]); | |
| update_user_meta($aktueller_ots_store->id,'ots_punkte_aktuell', $data[$ots_punkte_aktuell_id]); | |
| update_user_meta($aktueller_ots_store->id,'ots_punkte_lifetime', $data[$ots_punkte_lifetime_id]); | |
| update_user_meta($aktueller_ots_store->id,'ots_punkte_verwendet', $data[$ots_punkte_redeemed_id]); | |
| update_user_meta($aktueller_ots_store->id,'ots_punkte_quartal', $data[$ots_punkte_quarter_id]); | |
| echo "<p>Update beim Laden <strong>" . $data[$firma_id] . "</strong>:</p><p><strong>OTS Level:</strong> " . $data[$ots_level_id] . "<br />" . "<strong>OTS Punkte aktuell:</strong> " . $data[$ots_punkte_aktuell_id] . "<br />" . "<strong>OTS Punkte Lifetime:</strong> " . $data[$ots_punkte_lifetime_id] . "<br />" . "<strong>OTS Punkte eingelöst:</strong> " . $data[$ots_punkte_redeemed_id] . "<br />" . "<strong>OTS Punkte im Quartal:</strong> " . $data[$ots_punkte_quarter_id] . "</p><hr />"; | |
| $excluded_users[$excluded_users_id++] = $aktueller_ots_store->id; | |
| break 2; | |
| } | |
| // echo $data[$c] . "<br />\n"; | |
| } | |
| // echo "</p>"; | |
| } | |
| } | |
| $row++; | |
| /* echo "<p>Ausgeschlossene User-IDs: </p>"; | |
| foreach($excluded_users as $single_excluded_user) { | |
| echo "<p>User-ID: " . $single_excluded_user . "</p>"; | |
| } */ | |
| } | |
| fclose($handle); | |
| } // else echo "<p>handle konnte nicht geöffnet werden</p>"; | |
| } | |
| } | |
| function utf8_fopen_read($fileName) { | |
| $fc = iconv('windows-1250', 'utf-8//IGNORE', file_get_contents($fileName)); | |
| $handle=fopen("php://memory", "rw"); | |
| fwrite($handle, $fc); | |
| fseek($handle, 0); | |
| return $handle; | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment