PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP Grundlagen (http://www.selfphp.de/forum/forumdisplay.php?f=12)
-   -   nur bei bestimmten Zeilen den Zeilenumbruch löschen (http://www.selfphp.de/forum/showthread.php?t=26144)

Commu 28.01.2019 14:20:33

nur bei bestimmten Zeilen den Zeilenumbruch löschen
 
Hallo Zusammen,

ich möchte eine Tabelle die als String geliefert wird in einer Datenbank speichern.
die zu importierenden Daten kann ich nur in dieser Form abholen:
PHP-Code:

0045631086 Incident   Nov 12 2018 20:11   user1   Auftrag 27593668folgender Client mit Adminrechten für den 2. Betreiber ist für die Windows 10 Migration eingeplant   4   WIP      betrieb   user1   Jan 16 2019 15:52   
0045631119 Incident   Nov 12 2018 20
:11   user3   Auftrag 27591468folgender Client mit Adminrechten für den 2. Betreiber ist für die Windows 10 Migration eingeplant   4   WIP      betrieb   user1   Jan 16 2019 15:52   
0045631120 Incident   Nov 12 2018 20
:11   user45   Auftrag 27593374folgender Client mit Adminrechten für den 2. Betreiber ist für die Windows 10 Migration eingeplant   4   Assigned      betrieb      Dec 11 2018 17:14   
0045707616 Incident   Nov 16 2018 16
:21   user18   Auftrag 27618622folgender Client mit Adminrechten für den 2. Betreiber  ist für die Windows 10 Migration eingeplant   4   Assigned      betrieb      Nov 19 2018 07:27   
0045809986 Incident   Nov 23 2018 20
:11   user1   Auftrag 27660808folgender Client mit Adminrechten für den 2. Betreiber  ist für die Windows 10 Migration eingeplant   4   Assigned      betrieb      Nov 27 2018 09:36   
0046066882 Incident   Dec 11 2018 13
:42   user17   IncidentAbaqus-Lizenzabfrage nicht mehr   3   Assigned      betrieb      Dec 11 2018 14:53   
0046156891 Incident   Dec 17 2018 20
:03   user26   Auftrag 27780574folgender Client mit Adminrechten für den 2. Betreiber  ist für die Windows 10 Migration eingeplant   4   Assigned      betrieb      Dec 18 2018 08:46   
0046185970 Incident   Dec 19 2018 11
:11   user1   CAE_Incident-Monitor auflösen sowie Testlabor zuordnen   3   WIP      betrieb   user1   Jan 21 2019 11:49   
0046193217 Incident   Dec 19 2018 16
:36   user1   Bestellung von Hostnamen für neue Blades   3   Assigned      betrieb   user1   Jan 23 2019 10:26   
0046288753 Incident   Jan 03 2019 13
:36   user1   Rddelclientbitterechner (rechnerin SHOP
 Aufloesung 
(user1)   3   Sleep   Waiting for external Process   MTC_S+C_CAE   user1   Jan 11 2019 07:00   
0046324140 Incident   Jan 07 2019 13
:19   user1   Incident Beantragung neuer ESX-VM   3   Sleep   Waiting for external Process   betrieb   user1   Jan 08 2019 07:01   
0046337259 Incident   Jan 08 2019 08
:35   user1   IncidentBestellung neuer Linux VMs   3   Sleep   Waiting for external Process   betrieb   user1   Jan 11 2019 10:53   
0046388888 Incident   Jan 10 2019 16
:20   user1   RequestBestellung Netzwerkkabel für 4 Synergy-Blades   4   Sleep   Waiting for external Process   betrieb   user1   Jan 11 2019 07:30   
0046434490 Incident   Jan 14 2019 16
:50   user1   Auftrag 27872986Konfiguration und Softwarebetankung durchführen Funktionalität des Gerätes im Netz prüfen und gewährleisten   4   Sleep   Handling Interrupted   betrieb   kleppst   Jan 17 2019 10:01   
0046449876 Incident   Jan 15 2019 13
:03   user1   DE-Installation Win7-VM beauftragen   3   Sleep   Waiting for external Process   betrieb   user1   Jan 16 2019 07:10   
0046490808 Incident   Jan 17 2019 13
:06   user1   RequestBestellung von Software für Notebook   4   Sleep   Waiting for external Process   betrieb   user1   Jan 21 2019 09:05   
0046493912 Incident   Jan 17 2019 15
:09   user1   IP Migration High Performance Storage VLAN 2909   3   WIP      betrieb   user1   Jan 18 2019 09:44   
0046575118 Incident   Jan 23 2019 12
:42   user1   Request   4   Assigned      betrieb   user1   Jan 23 2019 12:42   
0046580649 Incident   Jan 23 2019 16
:35   user1   Rddelclientbitterechner (rechnerin SHOP
 Aufloesung 
(user1)   3   Assigned      betrieb      Jan 23 2019 16:35   
0046600269 Incident   Jan 24 2019 15
:43   user1   Rddelclientbitterechner (rechnerin SHOP
 Aufloesung 
(user1)   3   Assigned      betrieb      Jan 24 2019 15:43   
0046608479 Incident   Jan 25 2019 08
:24   user1   Auftrag 27934972Workstation PC Ausserbetriebnahme   4   Sleep   Handling Interrupted   betrieb   user1   Jan 25 2019 16:06   
0046617587 Incident   Jan 25 2019 14
:04   user1   RequestBestellung Rechte 2. Betreiber rechner   4   Assigned      betrieb      Jan 25 2019 14:05   
0046625362 Incident   Jan 26 2019 13
:00   user1   New Asset60289377 from   3   Assigned      betrieb      Jan 26 2019 13:00   
0046625364 Incident   Jan 26 2019 13
:00   user1   New Asset60289380 from   3   Assigned      betrieb      Jan 26 2019 13:00   
0046625367 Incident   Jan 26 2019 13
:00   user1   New Asset60289376 from   3   Assigned      betrieb      Jan 26 2019 13:00   
0046625369 Incident   Jan 26 2019 13
:00   user1   New Asset60289378 from   3   Assigned      betrieb      Jan 26 2019 13:00   
0046625370 Incident   Jan 26 2019 13
:00   user1   New Asset60289379 from   3   Assigned      betrieb      Jan 26 2019 13:00 

die zeile 11, 21 und 23 gehören an die vorherige Zeile.

ich ermittel die vorherigen Zeilen und lösche nur von diesen Zeilen den Umbruch.

PHP-Code:

$marker "";
$zeile 0;
$korr preg_split("%(\r\n)|(\r)%"$import);
foreach( 
$korr as $korrektur ) {
    
$zeile $zeile 1;
    
$z2z explode("   " substr($korrektur11));
    if ((
$z2z[4] == "")) {
    if (
$marker == "") {
        
$z $zeile;
        
$marker "".$z ."";
    } else {
        
$z1 $zeile;
            
$z $z1 1;
            
$marker $marker.",".$z;
    }
    }


ich würde nun im Anschluss den Text erneut durch laufen, ich komme aber nicht mit den Vergleichsoperatoren klar in diesem Fall hätte ich gerne die SQL-Anweisung "WHERE ... IN () der Übertrag aus der ersten Schleife ist 9,19,21. ($marker)

PHP-Code:

        $z 0;
        
$zeile preg_split("%(\r\n)|(\r)%"$import);
        foreach( 
$zeile as $txt ) {
            
$z $z 1;
            if (
$z ==  ???????)     //$marker
                
$var str_replace("\n"''$var);
        } 

könnt Ihr mir einen Tipp geben?

Gruß Jörg

sysop 29.01.2019 11:26:08

AW: nur bei bestimmten Zeilen den Zeilenumbruch löschen
 
quick and dirty, unter der Annahme, dass alle Zeilen mit 004 beginnen:

PHP-Code:


function preview($var)
{
   echo 
'<pre>';
   
print_r($var);
   echo 
'</pre>';
}

$bla '
0045631086 Incident   Nov 12 2018 20:11   user1   Auftrag 27593668: folgender Client mit Adminrechten für den 2. Betreiber ist für die Windows 10 Migration eingeplant   4   WIP      betrieb   user1   Jan 16 2019 15:52
0045631119 Incident   Nov 12 2018 20:11   user3   Auftrag 27591468: folgender Client mit Adminrechten für den 2. Betreiber ist für die Windows 10 Migration eingeplant   4   WIP      betrieb   user1   Jan 16 2019 15:52
0045631120 Incident   Nov 12 2018 20:11   user45   Auftrag 27593374: folgender Client mit Adminrechten für den 2. Betreiber ist für die Windows 10 Migration eingeplant   4   Assigned      betrieb      Dec 11 2018 17:14
0045707616 Incident   Nov 16 2018 16:21   user18   Auftrag 27618622: folgender Client mit Adminrechten für den 2. Betreiber  ist für die Windows 10 Migration eingeplant   4   Assigned      betrieb      Nov 19 2018 07:27
0045809986 Incident   Nov 23 2018 20:11   user1   Auftrag 27660808: folgender Client mit Adminrechten für den 2. Betreiber  ist für die Windows 10 Migration eingeplant   4   Assigned      betrieb      Nov 27 2018 09:36
0046066882 Incident   Dec 11 2018 13:42   user17   Incident: Abaqus-Lizenzabfrage nicht mehr   3   Assigned      betrieb      Dec 11 2018 14:53
0046156891 Incident   Dec 17 2018 20:03   user26   Auftrag 27780574: folgender Client mit Adminrechten für den 2. Betreiber  ist für die Windows 10 Migration eingeplant   4   Assigned      betrieb      Dec 18 2018 08:46
0046185970 Incident   Dec 19 2018 11:11   user1   CAE_Incident-Monitor auflösen sowie Testlabor zuordnen   3   WIP      betrieb   user1   Jan 21 2019 11:49
0046193217 Incident   Dec 19 2018 16:36   user1   Bestellung von Hostnamen für neue Blades   3   Assigned      betrieb   user1   Jan 23 2019 10:26
0046288753 Incident   Jan 03 2019 13:36   user1   Rddelclient: bitte, rechner (rechner) in SHOP
 Aufloesung (user1)   3   Sleep   Waiting for external Process   MTC_S+C_CAE   user1   Jan 11 2019 07:00
0046324140 Incident   Jan 07 2019 13:19   user1   Incident - Beantragung neuer ESX-VM   3   Sleep   Waiting for external Process   betrieb   user1   Jan 08 2019 07:01
0046337259 Incident   Jan 08 2019 08:35   user1   Incident: Bestellung neuer Linux VMs   3   Sleep   Waiting for external Process   betrieb   user1   Jan 11 2019 10:53
0046388888 Incident   Jan 10 2019 16:20   user1   Request: Bestellung Netzwerkkabel für 4 Synergy-Blades   4   Sleep   Waiting for external Process   betrieb   user1   Jan 11 2019 07:30
0046434490 Incident   Jan 14 2019 16:50   user1   Auftrag 27872986: Konfiguration und Softwarebetankung durchführen / Funktionalität des Gerätes im Netz prüfen und gewährleisten   4   Sleep   Handling Interrupted   betrieb   kleppst   Jan 17 2019 10:01
0046449876 Incident   Jan 15 2019 13:03   user1   DE-Installation Win7-VM beauftragen   3   Sleep   Waiting for external Process   betrieb   user1   Jan 16 2019 07:10
0046490808 Incident   Jan 17 2019 13:06   user1   Request: Bestellung von Software für Notebook   4   Sleep   Waiting for external Process   betrieb   user1   Jan 21 2019 09:05
0046493912 Incident   Jan 17 2019 15:09   user1   IP Migration High Performance Storage VLAN 2909   3   WIP      betrieb   user1   Jan 18 2019 09:44
0046575118 Incident   Jan 23 2019 12:42   user1   Request   4   Assigned      betrieb   user1   Jan 23 2019 12:42
0046580649 Incident   Jan 23 2019 16:35   user1   Rddelclient: bitte, rechner (rechner) in SHOP
 Aufloesung (user1)   3   Assigned      betrieb      Jan 23 2019 16:35
0046600269 Incident   Jan 24 2019 15:43   user1   Rddelclient: bitte, rechner (rechner) in SHOP
 Aufloesung (user1)   3   Assigned      betrieb      Jan 24 2019 15:43
0046608479 Incident   Jan 25 2019 08:24   user1   Auftrag 27934972: Workstation / PC - Ausserbetriebnahme   4   Sleep   Handling Interrupted   betrieb   user1   Jan 25 2019 16:06
0046617587 Incident   Jan 25 2019 14:04   user1   Request: Bestellung Rechte 2. Betreiber - rechner   4   Assigned      betrieb      Jan 25 2019 14:05
0046625362 Incident   Jan 26 2019 13:00   user1   New Asset: 60289377 : from   3   Assigned      betrieb      Jan 26 2019 13:00
0046625364 Incident   Jan 26 2019 13:00   user1   New Asset: 60289380 : from   3   Assigned      betrieb      Jan 26 2019 13:00
0046625367 Incident   Jan 26 2019 13:00   user1   New Asset: 60289376 : from   3   Assigned      betrieb      Jan 26 2019 13:00
0046625369 Incident   Jan 26 2019 13:00   user1   New Asset: 60289378 : from   3   Assigned      betrieb      Jan 26 2019 13:00
0046625370 Incident   Jan 26 2019 13:00   user1   New Asset: 60289379 : from   3   Assigned      betrieb      Jan 26 2019 13:00
'
;

$bla str_replace("\n"""$bla);
$bla str_replace("\r"""$bla);
$bla str_replace("004""\r\n004"$bla);

preview($bla); 


sysop 29.01.2019 12:13:56

AW: nur bei bestimmten Zeilen den Zeilenumbruch löschen
 
Nachtrag:

PHP-Code:

$bla explode("\n"$bla);

for(
$i 0$i count($bla); $i++)
{
    if(
substr($bla[$i], 01) == ' ')
    {
        
$bla[($i 1)] = trim($bla[($i 1)]).$bla[$i];
        unset(
$bla[$i]);

    }
}
$x implode("\n",$bla);

$x str_replace("  """$x);
$x str_replace(" "";"$x);

preview($x); 

Macht aus dem String eine CSV-Datei und die Trennung sollte dann gezielt möglich sein.


Alle Zeitangaben in WEZ +2. Es ist jetzt 12:30:14 Uhr.

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