SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

TYPO3 Kochbuch

TYPO3 Kochbuch zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > PHP Grundlagen
Hilfe Community Kalender Heutige Beiträge Suchen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 10.09.2005, 23:25:28
Ernest Ernest ist offline
Anfänger
 
Registriert seit: Apr 2004
Beiträge: 22
schneiden von strings und deren eintrag in eine DB

Mit find werden ordner /bla/blub/blob gelistet, jetzt ist meine idee die ordnernamen an den "/" abzuschneiden und in die Datenbank zu hauen,
gibt es einen Befehl der mir den String "vor" einem zeichen ausgibt und nicht "nach" einem Zeichen? zur zeit brauche ich 3 zeilen um das Ergebniss zu erreichen.

PHP-Code:
<?php
$dir
="/daten";
 
$a = `find $dir -depth -type d -print`;
 
$files explode ("\n"$a); 
 

 for (
$i=0$i count($files); $i++) 
     {
     
$sub_old substr("$files[$i]",14);
    
$genre strstr($sub_old,"/");
    
$genre2 substr("$genre",1);
    
$genre3 substr("$genre",1strpos($genre2,'/')) ;
    echo 
$genre3;
    echo 
"<br>";
     }
?>

In der Datenbank sollen dann bla eine spalte, blub eine spalte und blob eine eigene spalte bekommen.
Dann ist da noch das problem das zur Zeit so oft der hauptordner gezeigt wird wie es unterordner gibt, das sollte aber bei integration der Datenbankfunktion nicht stören. Um das ganze Datenbankkonform in mehrere ta bellen zu packen ists mir zu spät um mich da reindenken zu wollen, mann könnte "blub" eine ID geben und dann in der haupttabbelle nur die ID angeben, muss aber nicht.


zeit fürs bett.

und besten dank für jede hilfe
Mit Zitat antworten
  #2  
Alt 11.09.2005, 00:29:47
feuervogel feuervogel ist offline
SELFPHP Guru
 
Registriert seit: Jan 2004
Ort: Leipzig
Beiträge: 4.549
AW: schneiden von strings und deren eintrag in eine DB

PHP-Code:
$genre explode'/' $files[$i] );
echo 
$genre];
echo 
"<br>"
ich glaube aber nicht, dass das:

$a = `find $dir -depth -type d -print`;
$files = explode ("\n", $a);

funktioniert.

Geändert von feuervogel (11.09.2005 um 00:36:10 Uhr)
Mit Zitat antworten
  #3  
Alt 11.09.2005, 02:06:31
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
AW: schneiden von strings und deren eintrag in eine DB

Zitat:
Zitat von feuervogel
ich glaube aber nicht, dass das:
$a = `find $dir -depth -type d -print`;
$files = explode ("\n", $a);
funktioniert.
Du nicht...:
http://de.php.net/manual/de/language....execution.php
Mit Zitat antworten
  #4  
Alt 11.09.2005, 10:57:47
feuervogel feuervogel ist offline
SELFPHP Guru
 
Registriert seit: Jan 2004
Ort: Leipzig
Beiträge: 4.549
AW: schneiden von strings und deren eintrag in eine DB

oha! es ja wirklich doch so einfach...und man braucht nicht mal exec oder system...
Mit Zitat antworten
  #5  
Alt 11.09.2005, 12:09:17
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
AW: schneiden von strings und deren eintrag in eine DB

Möchtest du alles nach dem letzten Slash abschneiden (/foo/bar/foobar -> /foo/bar) oder möchtest du nur dann das letzte Zeichen abschneiden, wenn es ein Slash ist (/foo/bar/ -> /foo/bar?

Die erste Variante würde so funktionieren:
PHP-Code:
<?php
    $var 
substr($var0strrpos($var'/'));
?>
Die zweite klappt so:
PHP-Code:
<?php
    $regex
'#^(.*)/$#';
    
preg_match($regex$var$matches);
    
$var $matches[1];
?>
Oder auch so:
PHP-Code:
<?php
    
if(substr($varstrlen($var) - 1) == '/')
        
$var substr($var0strlen($var) - 2);
?>

Geändert von xabbuh (11.09.2005 um 12:40:16 Uhr)
Mit Zitat antworten
  #6  
Alt 11.09.2005, 17:58:13
Ernest Ernest ist offline
Anfänger
 
Registriert seit: Apr 2004
Beiträge: 22
AW: schneiden von strings und deren eintrag in eine DB

ich glaube das script funktioniert ganz gut, bis auf 2 macken.

bei bestimmten sonderzeichen wie [] und ' gibt mir mysql einen error und komischerweise sind alle Einträge mehrfach vorhanden.
Die Felder in der DB sind alle als "text" deklariert und auf UTF8_general gestellt

PHP-Code:
<?php
include('functions_db.php');
$conn db_connect ($host$user$password);

$dir="/daten";
 
$a = `find $dir -depth -type d -print`;
 
$files explode ("\n"$a); 
 

 for (
$i=0$i count($files); $i++) 
     {
     
     
$sub_old substr("$files[$i]",14);
    
$genre explode'/' $sub_old );
     
         for (
$j=0$j count($genre); $j++)
         {
            echo 
"Genre: $genre[1]";
            echo 
"<br>";
            
$Genre_db =  "$genre[1]";
            echo 
"Interpret1: $genre[2]";
            echo 
"<br>";
            
$interpret explode'-' $genre[2] );
            echo 
"Interpret2: $interpret[0]";
            echo 
"<br>";
            
$Interpret2 =  "$interpret[0]";

            if (
count($interpret[1]) != '0')
            {            
            echo 
"Album1: $interpret[1] $interpret[2]";
            echo 
"<br>";
            
$Album1 "$interpret[1] $interpret[2]";
            }
    
            
            
            
            
$Album_tmp explode'-' $genre[3] );
            if (
count($Album_tmp[1]) != '0')
            {
            echo 
"Album3: $Album_tmp[1]";            
            echo 
"<br>";
            
$Album3 "$Album_tmp[1]";
            }
            else {
                if (
count($genre[3]) != '0')
                {
                echo 
"Album2: $genre[3]";
                echo 
"<br>";
                
$Album2 "$genre[3]";
                }
            }
            if (
count($genre[4]) != '0')
            {
            echo 
"Album4: $genre[4]";
            echo 
"<br>";
            
$Album4 "$genre[4]";
            }
            echo 
"<br>"
            
            echo 
$query "
                INSERT INTO `tbl_alben` (`alb_interpret`, `alb_name1`, `alb_name2`, `alb_name3`, `alb_name4`, `alb_genre`) 
    
                VALUES ( '$Interpret2', '$Album1', '$Album2', '$Album3', '$Album4', '$Genre_db');
                
            "
;
            echo 
"<br>"
        
        
//echo $query = qry_ins_cat($file);
        
send_sql($dbname$query);
        unset(
$Album1);
        unset(
$Album2);
        unset(
$Album3);
        unset(
$Album4);
         }
     }
?>
ich nutze eine Ordnerstruktur mit bis zu 4 Unterordner.
Ohne das unset hat er mir wenn kein wert vorhanden ist immer den letzten in die leeren Felder geschrieben :(.

was sagen die cracks dazu?

Geändert von Ernest (11.09.2005 um 19:01:29 Uhr)
Mit Zitat antworten
  #7  
Alt 11.09.2005, 19:32:42
Ernest Ernest ist offline
Anfänger
 
Registriert seit: Apr 2004
Beiträge: 22
AW: schneiden von strings und deren eintrag in eine DB

ok, das sonderzeichenproblem scheint gelöst.
Komischerweise zeigt ein find in der bash jeden Ordner nur 1x an, der das php script wie gesagt jeden mehrmals

ups peinlich, die 2te for schleife wird garnicht genutzt :(.
Nun ists fast perfekt, es gibt noch den fall das nur $Interpret2 alleine vorkommt, ohne jegliches album, der Hauptordner ebent, kann man im query sagen das wenn "album1-4 = 0" er nix eitnragen soll?
Komischerweise geht das hier nicht.

PHP-Code:
$array = array("$Album1""$Album2""$Album3""$Album4");
            if(
count_chars($array) != '0')
            { 

Geändert von Ernest (11.09.2005 um 19:56:49 Uhr)
Mit Zitat antworten
  #8  
Alt 11.09.2005, 20:12:27
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
AW: schneiden von strings und deren eintrag in eine DB

Zitat:
Zitat von Ernest
PHP-Code:
$array = array("$Album1""$Album2""$Album3""$Album4");
if(
count_chars($array) != '0') { 
Das funktioniert nicht, da du hier vier Elemente angibst. Wenn eine der Variablen leer sind, wird einfach ein leeres Array-Element angelegt.
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
die schnellste möglichkeit zu prüfen, ob ein eintrag existiert EyeDacor MySQLi/PDO/(MySQL) 15 25.05.2005 14:34:40
Breite eines Strings in Pixel ausrechnen didi86 HTML, CSS und JavaScript Help! 2 24.10.2004 12:31:17
datenbank anzeige "kein eintrag vorhanden.." Der Andy PHP für Fortgeschrittene und Experten 2 02.06.2003 12:48:28
Frage zu mySQL Auto Increment Wauzy PHP für Fortgeschrittene und Experten 1 13.03.2003 23:29:15
Formularfelder auf Eintrag prüfen shewolf PHP Grundlagen 3 16.10.2002 11:09:11


Alle Zeitangaben in WEZ +2. Es ist jetzt 03:57:07 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt