php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Jobs und Projekte > Projekthilfe
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


Projekthilfe Hier könnt Ihr eine Art Projekthilfe anfordern. Unter Projekthilfe verstehen wir Angebote bei denen KEIN Geld gezahlt werden kann.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #61 (permalink)  
Alt 21-06-2008, 18:41
Griecherus
 PHP Senior
Links : Onlinestatus : Griecherus ist offline
Registriert seit: May 2005
Ort: Berlin
Beiträge: 1.036
Griecherus ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von Estrela
Dieses Script habe ich hier empfangen und oben wieder dargestellt.
Estrela
Es sieht eher so aus, als hättest du alles, was du hier empfangen hast, ohne Wenn-und-Aber zusammengeklebt.
PHP-Code:
foreach($txt as $zeile){
    echo 
manipulate($zeile);
}
echo 
"<dl>\n"
Wo in deinem Skript wird $txt definiert? Nirgends. Und welchen Sinn sollte es haben - wenn es funktionieren würde -, wo du manipulate() weiter unten im Skript nochmal anwendest? Das sieht alles überhaupt nicht durchdacht aus.

Grüße
Mit Zitat antworten
  #62 (permalink)  
Alt 21-06-2008, 18:44
Blackgreetz
 PHP Junior
Links : Onlinestatus : Blackgreetz ist offline
Registriert seit: Oct 2005
Beiträge: 901
Blackgreetz ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Meine Erkenntnisse sind, dass du ansich nichts dazu gelernt hast.

Erstmal fehlt das debugging ....
error_reporting etc. pp. ...

Du hast 2x foreach...

Die 1. Schleife davon ist nonsense...

..und die 2. Schleife ist wohl die richtige, bis auf die tatsache, dass da dann der Anfangstag fehlt, wie du bereits sagtest...

Vlt guckst du dir deine Funktionen nochmal an, was sie machen etc.
Dann bekommste auch ganz schnell den dreh raus, wo dein echo hin muss....

..oder du wartest, bis dir jmd. fertigen Code liefert

mfg
Edit: Griecherus, nur weil ich esse und somit länger brauch, brauchst du mir nicht zuvor kommen
Mit Zitat antworten
  #63 (permalink)  
Alt 21-06-2008, 18:53
Griecherus
 PHP Senior
Links : Onlinestatus : Griecherus ist offline
Registriert seit: May 2005
Ort: Berlin
Beiträge: 1.036
Griecherus ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von Blackgreetz

Edit: Griecherus, nur weil ich esse und somit länger brauch, brauchst du mir nicht zuvor kommen
OffTopic:

Ich schäme mich aufrichtig.. Guten Appetit

Mit Zitat antworten
  #64 (permalink)  
Alt 21-06-2008, 18:55
Estrela
 Registrierter Benutzer
Links : Onlinestatus : Estrela ist offline
Registriert seit: Jun 2008
Beiträge: 165
Estrela ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo Griecherus.

Da es ja soweit funktionierte, habe ich mir über die von Dir zitierten Codezeilen keine Gedanken gemacht, sondern mich erst mal auf das konzentriert, was ich als Fehler erkannt habe. Und das ist der Umstand, das das erste <dl> nicht auftaucht.

Und Du hast recht damit, das die von Dir zitierten Codezeilen nicht für den Ablauf benötigt werden. Aber dann stellt sich erst recht die Frage, woher das erste <dl> kommen soll?

Gruß
Estrela
Mit Zitat antworten
  #65 (permalink)  
Alt 21-06-2008, 18:59
Blackgreetz
 PHP Junior
Links : Onlinestatus : Blackgreetz ist offline
Registriert seit: Oct 2005
Beiträge: 901
Blackgreetz ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von Griecherus
OffTopic:

Ich schäme mich aufrichtig.. Guten Appetit

OffTopic:
Danke. Hat auf jeden Fall geschmeckt.


@Estrela:

Dann solltest du dir erstmal überlegen, was dein Code macht , wie bereits gesagt...

mfg
Mit Zitat antworten
  #66 (permalink)  
Alt 21-06-2008, 19:16
Estrela
 Registrierter Benutzer
Links : Onlinestatus : Estrela ist offline
Registriert seit: Jun 2008
Beiträge: 165
Estrela ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo Blackgreetz.

Erst mal Danke für Deinen Tipp, das ich mit einem echo in der Funktion weiterkomme.
Schaun mer mal, was der Code macht.
PHP-Code:
function manipulate($str) { 
    
$str preg_replace('|<div class="texth1">(.+)</div>|U'
                        
'<dt>$1</dt>'
                        
preg_replace('|<div class="silber">(.*)</div>|U'
                                        
'<h1>$1</h1><dl>'
                                        
$str
                        
)
    ); 
Oben werden die Strings zwischen | | in $str gesucht und mit den darunterliegenden ersetzt.

PHP-Code:
    if(preg_match('|</h1>|Ui'$str)){
        
$str .= "</dl>\n";
    } 
Oben wird </h1> gesucht und wenn gefunden an $str, also an die letzte Stelle, das "</dl>\n" angehängt.
/Edit
Hier hatte ich ja schon mal vorgeschlagen, die Abfrage so zu formulieren, das sowohl das letzte </dl> als auch das erste <dl> in das Dokument eingefügt wird.
$str . fügt ans Ende an. Was fügt am Anfang ein?
Edit/

PHP-Code:
    $str preg_replace('|<br\s*/?>|Ui'"\n</dl>\n<dl>"$str);
    return 
$str;

Oben werden die <br ´s gesucht und mit "\n</dl>\n<dl>" ersetzt.

Habe versucht, die echo´s an verschiedenen Stellen einzubauen, ohne Erfolg.

So, also wo die echo Anweisung reinpasst, ist mir immer noch unklar.
Möchte auch noch mal anmerken, das sich langsam der Frust breitmacht.
Arbeite schon bald fünf Tage daran.
Brauche dringend Weiterkommen.

Gruß
Estrela

Geändert von Estrela (21-06-2008 um 19:58 Uhr)
Mit Zitat antworten
  #67 (permalink)  
Alt 21-06-2008, 20:03
Griecherus
 PHP Senior
Links : Onlinestatus : Griecherus ist offline
Registriert seit: May 2005
Ort: Berlin
Beiträge: 1.036
Griecherus ist zur Zeit noch ein unbeschriebenes Blatt
Standard

PHP-Code:
$str  'bar';        // -> bar
$str .= 'baz';        // -> barbaz
$str  'foo' $str// -> foobarbaz 
Grüße
Mit Zitat antworten
  #68 (permalink)  
Alt 21-06-2008, 20:22
Estrela
 Registrierter Benutzer
Links : Onlinestatus : Estrela ist offline
Registriert seit: Jun 2008
Beiträge: 165
Estrela ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo.

Das war der entscheidene Hinweis. Ich danke Dir.
Ich danke allen, die hier so hilfreich, geduldig, freundlich und sachkundig geholfen haben.
Endlich geschafft.

Gruß
Estrela

Geändert von Estrela (21-06-2008 um 21:32 Uhr)
Mit Zitat antworten
  #69 (permalink)  
Alt 21-06-2008, 20:44
Estrela
 Registrierter Benutzer
Links : Onlinestatus : Estrela ist offline
Registriert seit: Jun 2008
Beiträge: 165
Estrela ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo.

Leider hat der Praxiseinsatz einige Besonderheiten gezeigt.
Das Einfügen an erster Stelle des Dokumentes erweißt sich als invalide, da nicht nur keine <br /> in <dl> erlaubt sind, sondern ebenfalls keine <h1>.
Kann man nicht statt dem Einfügen an erster Position die erste leere Zeile definieren?
Weiterhin existieren Ausnahmefälle, in dem die <br /> nicht ersetzt werden dürfen:

<h1>10. O MESTRE<br /><em> (Luiz Carlos Sil)</em></h1>

Beide Besonderheiten ließen sich umgehen, wenn für die entsprechenden Operationen die erste leere Zeile als Anfang definiert ist.

Tangiert sind folgende Anweisungen:

PHP-Code:
    if(preg_match('|</h1>|Ui'$str)){
    
$str .= "</dl>\n"// Diese Anweisung ausgenommen
    
$str  '<dl>' $str;
    } 
    
$str preg_replace('|<br\s*/?>|Ui'"\n</dl><br />\n<dl>"$str);
    return 
$str
Hat jemand eine Idee, wie das umsetzbar ist und teilt es Uns mit?
Wahrscheinlich ist es am besten, in der Funktion am Anfang nach der ersten leeren Zeile suchen zu lassen und den Pointer darauf zu stellen.

Gruß
Estrela

Geändert von Estrela (21-06-2008 um 23:44 Uhr)
Mit Zitat antworten
  #70 (permalink)  
Alt 23-06-2008, 08:48
H2O
 PHP Junior
Links : Onlinestatus : H2O ist offline
Registriert seit: Jul 2007
Beiträge: 937
H2O ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ich habe dir schon gesagt, dass mein Code korrekt ist. Was dein hier soll, weiss ich nicht. Und da du offensichtlich zu faul bist, dich mit den regulären Ausdrücken zu beschäftigen (um deren sehr einfache Ausprägungen es sich hier handelt), hat es eigentlich auch keinen Sinn, hier weiter zu machen.
Zitat:
Original geschrieben von Blackgreetz
..oder du wartest, bis dir jmd. fertigen Code liefert
Das werde ich jetzt tun und dann werde ich diesen Thread nicht mehr anschauen.
PHP-Code:
<!DOCTYPE html PUBLIC "-//W3C//DtD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml1" lang="en"  xml:lang="en">
<head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
    <title>Textmanipulation</title>
</head>
<body>
<?php

foreach (glob($path DIRECTORY_SEPARATOR '*.php') as $filename){
    
$txt file($filename)
    
contents '';
    foreach (
$txt as $zeile){
        
$contents .=  manipulate($zeile);
    }
    
$contents .=  "</dl>\n";

    
file_put_contents($filename$contents) or die('Error writing data to ' $filename);
}

function 
manipulate($str) {
    
$str preg_replace('|<div class="texth1">(.+)</div>|U'
                           
'<dt>$1</dt>'
                           
preg_replace('|<div class="silber">(.*)</div>|U'
                                        
'<dd>$1</dd>'
                                        
$str
                        
)
    );
    if (
preg_match('|</h1>|Ui'$str)){
            
$str .= "<dl>\n";
    }
    
$str preg_replace('|<br\s*/?>|Ui'"\n</dl>\n<dl>"$str);
       return 
$str;
}
?>

</body>
</html>
__________________
Gruss
H2O

Geändert von H2O (23-06-2008 um 08:50 Uhr)
Mit Zitat antworten
  #71 (permalink)  
Alt 23-06-2008, 09:11
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

@H2O:
PHP-Code:
if (preg_match('|</h1>|Ui'$str)){
        
$str .= "<dl>\n";
}
$str preg_replace('|<brs*/?>|Ui'"\n</dl>\n<dl>"$str); 
Das gibt Salat, denn wie der TO im letzten Beitrag erwähnte, kommt BR auch innerhalb einer Textzeile vor und soll dort nicht ersetzt werden. Wieso ein H1 Anlaß bietet, ein DL anzuhängen, verstehe ich nicht. Aber wahrscheinlich ist mir da im Laufe des Threads einfach was entgangen.

Geändert von onemorenerd (23-06-2008 um 09:15 Uhr)
Mit Zitat antworten
  #72 (permalink)  
Alt 23-06-2008, 10:00
Wyveres
 Registrierter Benutzer
Links : Onlinestatus : Wyveres ist offline
Registriert seit: Dec 2006
Ort: Rügen
Beiträge: 763
Blog-Einträge: 2
Wyveres ist zur Zeit noch ein unbeschriebenes Blatt
Wyveres eine Nachricht über ICQ schicken
Standard

Ich hab diesen thread jetzt mal eine Ganze weile Verfolgt.

@TS ... Kauf die PHP Bücher :) die sind viel geduldiger mit dir als mancher hier.

Zum Problem.

Ich hab mir mal eben selbst fix was aus den Fingern gesaugt :)
OffTopic:

nebenbei hab ich die Preg_Replace hier ausm thread verwendet. warum man für sowas unbedingt soviel aufwand betreiben muss is mir schleierhaft. aber der TS hat sowieso eine Ausdrucksweise die Fast an Beamtendeutsch erinnern :)



PHP-Code:
<?php
/**

* Was ist gegeben in einer File sollen DIVS ersetzt werden durch definierte Listen 
* <div class="texth1"> durch <dt>
* <div class="silber"> durch <dd>
* Beispiel:
<h1>1. Überschrift</h1>

<div class="texth1">Text portugiesisch</div>
<div class="silber"> Deutsche Übersetzung</div>
<div class="texth1">Text portugiesisch</div>
<div class="silber"> Deutsche Übersetzung</div>
<div class="texth1">Text portugiesisch</div>
<div class="silber"> Deutsche Übersetzung</div>
<div class="texth1">Text portugiesisch</div>
<div class="silber"> Deutsche Übersetzung</div>

<div class="texth1">Text portugiesisch</div>
<div class="silber"> Deutsche Übersetzung</div>
<div class="texth1">Text portugiesisch</div>
<div class="silber"> Deutsche Übersetzung</div>
<div class="texth1">Text portugiesisch</div>
<div class="silber"> Deutsche Übersetzung</div>
<div class="texth1">Text portugiesisch</div>
<div class="silber"> Deutsche Übersetzung</div>
* Davor und Danach soll jeweiles ein <dl> und </dl> 
* angehängt werden. <h1> tags sollen Ignoriert werden.
*/
error_reporting(E_All);
header("Content-type: text/html; charset=utf-8");
//$content=file_get_contents("testfile.txt");
//echo $content;
$content='<h1>1. Überschrift</h1>

<div class="texth1">Text portugiesisch</div>
<div class="silber"> Deutsche Übersetzung</div>
<div class="texth1">Text portugiesisch</div>
<div class="silber"> Deutsche Übersetzung</div>
<div class="texth1">Text portugiesisch</div>
<div class="silber"> Deutsche Übersetzung</div>
<div class="texth1">Text portugiesisch</div>
<div class="silber"> Deutsche Übersetzung</div>

<div class="texth1">Text portugiesisch</div>
<div class="silber"> Deutsche Übersetzung</div>
<div class="texth1">Text portugiesisch</div>
<div class="silber"> Deutsche Übersetzung</div>
<div class="texth1">Text portugiesisch</div>
<div class="silber"> Deutsche Übersetzung</div>
<div class="texth1">Text portugiesisch</div>
<div class="silber"> Deutsche Übersetzung</div>'
;
$ExplodetContent=explode("\n",$content);
//var_dump($ExplodetContent);

foreach($ExplodetContent as $key=>$value)
{
    
$value =   preg_replace('|<div class="texth1">(.+)</div>|U'
                            
'<dt>$1</dt>'
                            
preg_replace('|<div class="silber">(.*)</div>|U'
                                        
'<dd>$1</dd>'
                                        
$value
                                        
)
                            );
                        
    
//echo "<pre>".str_replace("<","&lt;",str_replace(">","&gt;",$value))."</pre>";
    
$NewContent[]=$value;
}
$first=false;
foreach(
$NewContent as $key=>$value)
{
    if(
preg_match("/(<dt>)|<dd>/Uis",$value))
    {
        if(
$first==false)
        {
        
$value="<dl>\n".$value;
        
$NewContent[$key]=$value;
        
$first=true;
        }
    }
}
$NewContent=array_reverse($NewContent);
$first=false
foreach(
$NewContent as $key=>$value)
{
    if(
preg_match("/(<dt>)|<dd>/Uis",$value))
    {
        if(
$first==false)
        {
        
$value=$value."\n</dl>";
        
$NewContent[$key]=$value;
        
$first=true;
        }
    }
}
$NewContent=array_reverse($NewContent);
$NewContent=implode("\n",$NewContent);
//echo "<pre>".str_replace("<","&lt;",str_replace(">","&gt;",$NewContent))."</pre>"; 
/** 
* Der rest Dürfte Sich von alleine Erklären ... warum es
* sich einige immer schwerer machen als es ist ka
* Solange alle datein fast genau so aussehen :) 
* wenn nicht ... kann man in ruhe ausnahmen definieren aber dazu solltest du 
* ENDLICH bitte ersteinmal die absoluten GRUNDLAGEN STUDIEREN 
*/
?>
__________________
Bitte Beachten.
Foren-Regeln
Danke
Mit Zitat antworten
  #73 (permalink)  
Alt 24-06-2008, 00:19
Estrela
 Registrierter Benutzer
Links : Onlinestatus : Estrela ist offline
Registriert seit: Jun 2008
Beiträge: 165
Estrela ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo zusammen.

Wollte nur sagen, das der code erstellt und implementiert wurde.

Danke für die wertvolle Hilfe und die vielen Anregungen.

Gruß

Estrela
Mit Zitat antworten
Antwort

Lesezeichen


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

Themen-Optionen
Thema bewerten
Thema bewerten:

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 an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

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