functionen return funzt nicht

Alles, was PHP betrifft, kann hier besprochen werden.

functionen return funzt nicht

Postby red171 » 11. July 2004 23:46

n abend,

nachdem ich jetzt mehrere tage an einenscript bastel
hab ich es schon fast bis zum ende geschaft

nur häng ich seit 2tagen am ende irgendwo fest

ich hab mich durch php.net gewühlt und hier durch diverse threads
da ich aber anscheinend der erste bin der sowas wie ich hier grade mache (is n bischen komplexer das ganze, nich so einfach auslesen umrechnen ausgeben) brauch ich eure hilfe nochmal..

folgendest

hab ne test2.php
wo folgendes drinne ist:
Code: Select all
<?
require("./inc/func.php");
$filename = 'test.txt';
$fp = fopen($filename,'r');
$string = fread($fp, filesize ($filename));

echo "<hr width=\"80%\" align=\"left\">\n";
echo "<b>roh-text der aus der datei gezogen wird und durchsucht werden soll:</b> \n";
echo "<br />\n";
echo "$string\n";
echo "<br />\n";
echo "<hr width=\"80%\" align=\"left\">\n";
echo "<b>der fertig geparste text einschlislich umgewandelter aj-links:</b> \n";

///anfangen nach aj links zu suchen
$anfang = preg_match_all("|(ajfsp:\/\/file)(.*)(\/)|U", $string, $found, PREG_PATTERN_ORDER);
for ($i=0; $i<$anfang; $i++) {
   $chunk .= $found[0][$i]."<br />";
}

///für die functionen schönheitsfehler filtern
$zerhacken = explode('<br />', $chunk);
foreach($zerhacken as $bearbeiten) {
if($bearbeiten!=""){
downloadfile($bearbeiten);
rechencode($bearbeiten);
downloadname($bearbeiten);
}
}

///Das hier ist nur ein versuch der aber auch kläglich in die hose geht...
/*
$test = rechencode("\\0");
for ($i=0; $i<$test; $i++) {
   $rounded_file .= $test[0][$i];
}
*/

// wie der link nachher aussehen soll
$download_name = downloadname("\\0");
$ausgabe = "<b>» </b><a href=\"$download_name\" title=\"$download_name\">$file_name test</a> [$rounded_file MB]";

///im strin suchen und ersetzen
$string = preg_replace("|(ajfsp:\/\/file)(.*)(\/)|U", "$ausgabe", $string);
 
echo "<br />\n";
echo "$string\n<br />\n<br />\n";
echo "<hr width=\"80%\" align=\"left\">\n";
echo "<b>nochmal die links einzelnd aufgelistet:</b> \n";
echo "<br />\n";
echo "$chunk\n<br />";
?>


die datei an sich ist auch vollkommen in ordnung
bin ich zumindest der meinung
ganz oben wird nen txt eingebunden wie ihr sehen könnt wo alles das drinne steht was ich benötige...
das auslesen funzt auch alles.
es klappt wie gesagt bisher genauso wie ich es möchte.

nun wird oben die func.php includet wo ich 2 functionen drinne habe
hier der inhalt
Code: Select all
<?php
function rechencode($anfangen) { 
//Fileanfang wegschneiden
$fileanfang = substr($anfangen, 13);
//Filenamen Raussuchen
$fileende = stristr($fileanfang, '|'); 
//Den Müll aus der Datei rausschneiden
$file3 = str_replace($fileende, '', $fileanfang);
//leerzeichen reinmachen für %20
$file0 = str_replace('%20', ' ', $file3); 
$lastzeichen = str_replace($file3."|", '', $fileanfang);
$lastzeichen2 = stristr($lastzeichen, '|');
$lastzeichen3 = substr($lastzeichen2, 1);
$groessegesamt = $lastzeichen3/1024/1024;
$rounded = round($groessegesamt, 2);
return $rounded;
break;
}

#####################################
function downloadfile($anfangen) { 
//Fileanfang wegschneiden
$fileanfang = substr($anfangen, 13);
//Filenamen Raussuchen
$fileende = stristr($fileanfang, '|'); 
//Den Müll aus der Datei rausschneiden
$file3 = str_replace($fileende, '', $fileanfang); 
//leerzeichen reinmachen für %20
$file = str_replace('%20', ' ', $file3);
//Länge prüfen (Bei überlänge zerkleinern)
$len = strlen("$file");
if($len>"80"){ $len1 = $len/100*40;
$len2 = $len/100*20;
$file2 = substr($file, -$len2);
$file1 = substr($file, 0, -$len1); 
$file = "$file1 . . . $file2";
}
return $file;
break;
}

#####################################
function downloadname($download_name) { 
return $download_name;
break;
}
?>


ab hier begint mein problem
function downloadname gibt mir das zurück was ich haben will
die andren functionen geben mir mit echo anstatt return auch das zurück was ich haben will wenn ich die test2 so umbaue wie ich es haben will
aber irgendwie stimmt was mit dem rückgabe wert nicht bzw ich les den rückgabe wert der andren functionen falsch aus...


in der test2.php fehlt auch was
was ich jetzt so schnell nicht wiederfinde
und zwar der eigentlich rückhol kram von den 2 andren functionen
die hab ich erstmal rausgenommen
ich habe dann mit dem for was auskommentiert ist was probiert was auch nicht ganz gefunzt hat...
wenn ich versuche von den 2 ersten functionen die varibalen so auszulesen wie bei der letzen function dann bekomm ich garnixh zurück..
es kommt einfach NIX..


ich hab schon so viel versucht mit den arrays aus der function rechencode etc
aber anscheinend mach ich irgendwo noch nen fehler..
irgendwo stimmt hier was nich..
ich hoffe ihr seht meinen fehler und könnt mich irgendwie belehren und mir erklären was ich falsch mache..
ich danke euch

( http://XXXX.mine.nu/test2.php < das ist das was passiert. ihr werdet sehn wo mein problem liegt.. )
mfg
Last edited by red171 on 23. February 2012 09:44, edited 1 time in total.
red171
 

Postby Wiedmann » 12. July 2004 12:27

Hm, um zu verstehen um was es geht.... Das Ergebnis von dem was du da machst, soll also so ähnlich wie folgender Code aussehen?

Code: Select all
<?php
$dateiname = 'test.txt';
$datei_orginal = @file($dateiname);

if (false !== $datei_orginal) {
    $i = 0;
    foreach ($datei_orginal as $key => $value) {
        if (false === strpos($value, 'ajfsp://')) {
            $datei_geparsed[$key] = $value;
        } else {
            $links[$i] = trim(strip_tags($value));
            $aktuell_link = explode('|', $links[$i]);
            if (array_key_exists(1, $aktuell_link)) {
                $linkname = $aktuell_link[1];
            } else {
                $linkname = '';
            }
            if (array_key_exists(3, $aktuell_link)) {
                $linkgroesse = round($aktuell_link[3] / 1024 / 1024, 2);
            } else {
                $linkgroesse = 0;
            }
            $datei_geparsed[$key] = '<b>» </b><a href="'.$links[$i].
                                    '" title="'.$linkname.'">'.$linkname.'</a> '.
                                    $linkgroesse.' [MB]<br />'."\n";
            $i++;
        }
    }
    $datei_orginal = implode('', $datei_orginal);
} else {
    $datei_orginal = 'Falscher Dateiname!';
}
?>

<html>
<head>
<title>appleJuice-Link Umwandlung -- Test3</title>
</head>
<body bgcolor="#666666" text="#000000">

<hr width="80%" align="left">
<b>Rohtext der aus der Datei gezogen wird und durchsucht werden soll:</b>
<br />
<?php
if (isset($datei_orginal)) {
    echo $datei_orginal;
}
?>
<br />

<hr width="80%" align="left">
<b>Der fertig geparste Text einschliesslich umgewandelter aj-Links:</b>
<br />
<?php
if (isset($datei_geparsed)) {
    foreach ($datei_geparsed as $value) {
        echo $value;
    }
}
?>
<br />

<hr width="80%" align="left">
<b>Nochmal die Links einzeln aufgelistet:</b>
<br />
<?php
if (isset($links)) {
    foreach ($links as $value) {
        echo $value.'<br />'."\n";
    }
}
?>
<br />
</body>
</html>
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby red171 » 12. July 2004 17:10

moin,

hmm das was du da jetzt gebastelt hast hab ich in gewisser weise auch schon hier vor liegen..

problem hierbei ist.
ich hab das ganze nicht umsonst in functionen gebaut und alles mir variablen versehen..

das ich ne txt öffne ist nur dazu weil ich keine lust hatte den kram der in der txt steht alles in den code zu schreiben...

das ganze soll wenns fertig ist nur ein klein wenig angepasst werden

sprich der
Code: Select all
$anfang = preg_match_all("|(ajfsp:\/\/file)(.*)(\/)|U", $string, $found, PREG_PATTERN_ORDER);

wird nur etwas ab geändert von wo er den text bekommt

ich möchte diesen code nachher in ein wbb2 einbauen wo diese links vorkommen..

heist in nehm mir meine drei oder wenns past nachher 2 oder gar eine function
hau die von dem wbb in die function.php

nehm mir meinen coder deer die links ausliest mit den functionen bearbeitet und an selber stelle wieder ersetzt.

und bau das an die richtige stelle in der thread.php vom wbb2 ein

ich habe ein kleinen test schon damit gemacht wo er mir die fertigen links alle einfach unten drunter unter den text setzt.
funzt alles wunderbar
ich möcht aber das er mir die links an den stellen wo sie vorkommen ersetzt...

daher auch dieser aufwand den ich da betreibe..
und ich komm ebend an dieser stelle nicht weiter wie du ja auf dem link der unten steht unschwer erkennen kannst...

mfg

rEd
red171
 

Postby Wiedmann » 12. July 2004 17:37

Ich wollt ja auch wissen ob das Ergibnis das ist, was du haben willst....
- eine Variable mit dem Orginaltext (Wobei die eh obsolete wäre. Gibt es nichts zum Umwandeln, hast du ja wieder das Orginal im geparsten)?
- eine mit dem Text wo die Links umgewandelt sind (Hier vor allem wie du die umgewandelt brauchst)?
- eine wo die Links einzeln aufgelistet sind?

Wenn das Ergebnis so passt, mußt nu ja nur das erste If{} als Funktion machen und du hast was du willst (musst halt die 3 Variablen noch als Array zurückgeben, oder einen Parameter übergeben damit das gewünschte Ergebnis direkt zurückgegeben wird)....

BTW: Deine Funktion unterschlägt einen Link.
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby red171 » 12. July 2004 17:50

das was du da geschrieben hast war genau das was ich haben wollte

genau so

das was ich da noch hatte

mit oben orginal text

dann der fertig geparste text

und unten drunter nochmal so die einzelnen links war nur so

wichtig ist nachher nur das ich irgendwo angeben kann welchen text der durchsuchen soll

wäre somit $text aus dem wbb2

und das mir das ganze den $text danach durchsucht und die vorhanden links ersetzt

also genauso wie du das da in dem script gemacht hattest

http://red171.mine.nu/test3.php

das ist jetzt dein script
das ganze mit den ganzen body tags bg usw hab ich nur zur übersicht mit rein gemacht..

wie gesagt brauch das als function und das es mit varibalen funzt

ich versteh jetzt nich was du meinst wie ich das abändern soll

kannst mir das evtl zeigen?
genau das is ja dann wieder das wo ich häng...

mfg

btw.
das ist absicht das er mit den server nicht umwandelt
dafür mach ich noch nen kleines andres script fertig sobal ich weis wies geht..
ist im dem link da oben auch wieder abgeändert...
red171
 

Postby Wiedmann » 12. July 2004 18:04

Also gut. Zusammenfassung:

Du willst eine Funktion, in der du einen Text aus einer Variablen reinschickst, dann alle vorhanden ajfsp-Links auf diese Weise umgewandelt werden und dieser umgewandelte Text (wenn es was zum Umwandeln gibt) wieder herauskommt.

Stehen die Links immer in einer eigènen Zeile und die Zeile fängt auch mit dem Link an?

Brauchst du auch eine Rückgabe von der Funktion wo nur die Links drin sind. Wenn ja, in welcher Form. Ein Array, oder ein String mit Absätzen (nur "\n" oder auch "<br />"?)?
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby red171 » 12. July 2004 18:13

Du willst eine Funktion, in der du einen Text aus einer Variablen reinschickst, dann alle vorhanden ajfsp-Links auf diese Weise umgewandelt werden und dieser umgewandelte Text (wenn es was zum Umwandeln gibt) wieder herauskommt.


die links werden bei mir ja schon mit preg_match_All alle herraus gesucht und in einer varibale $chunk an die function weiter gegeben

der letze <br /> wird dabe auch entfernt
(da es sonst immer einen 0 link geben würde)
sowiet funzt bei mir aj alles wie du im ersten post von mir an dem link sehen kannst..
wenn ich diese varible dann an meine functionen weiter gebe wird damit auch richtig gearbeitet
heist ich gebe 3 oder mehr links an die function
macht er mit alle 4links das was passieren soll
also namen raus schneiden
und mb größe errechnen
und das ganze dann wieder zurück geben mit return ebend!
und das return ist das problem
ich bekomms nich hin das dass geht

beispiel
du nimmst mein script und baust es so auf wie ich
machst dir local die datein usw.
dann machst du mal in dn ersten beiden function jeweils einzelnd anstatt return nen echo
und es funzt alles..

es ist eigentlich immer ein <br /> am ende

wie du bei mir sehen kannst an meinen script ist das auch nich das problem
ob da nun <br /> oder \n am ende steht ist egal
hab das ja anderweitig gelöst..

zu der frage mit array oder absätzen..

i dont know
kann ich nicht sagen da ich ehrlich gesagt keinen plan hab warumj mein script mit der letzenfunction geht,
und die ersten beiden nicht
ich weis auch nicht so genau wie die letze function im return die daten zurück gibt das preg_replace alles RICHTIG ersetzt..
das is das erste mal das ich mir sowas bau daher auch die fragen...

mfg
red171
 

Postby Wiedmann » 12. July 2004 18:53

Hätte es nicht gelangt meine 3 Fragen einfach nacheinander mit Ja oder Nein zu beantworten?

Dein Script ist einfach zu durcheinder. Mit z.T. Aktionen die so keinen Sinn machen, oder halt das Ergebnis bewirken was du siehst...

Code: Select all
$anfang = preg_match_all("|(ajfsp:\/\/file)(.*)(\/)|U", $string, $found, PREG_PATTERN_ORDER);
for ($i=0; $i<$anfang; $i++) {
   $chunk .= $found[0][$i]."<br />";
}

Hier suchst du deine Links, hast zu schon schön einzeln im Array und machst dann wieder einen String daraus den du später wieder zerlegen musst. Dein "<br />" was dich stört kommt auch hier her.

Code: Select all
foreach($zerhacken as $bearbeiten) {
if($bearbeiten!=""){
downloadfile($bearbeiten);
rechencode($bearbeiten);
downloadname($bearbeiten);
}
}

Dieser Abschnitt hat überhaupt keine Wirkung...

Code: Select all
$test = rechencode("\\0");
for ($i=0; $i<$test; $i++) {
   $rounded_file .= $test[0][$i];
}

Hier übergibst du rechencode() einen String. Aber was für einen? Rechencode gibt dann EINE Zahl zurück und diese weist du $test zu.
Wieso ist dann $test plötlich ein Array? Und was da $rounded_file zugewiesen werden soll ist mir auch nicht klar. (Was immer rechencode() machen soll. Da kommt nichts dabei raus, womit man in einer Schleife einen String erweitern kann?

Code: Select all
function rechencode($anfangen) {
...
}

Naja, das war bei mit 1-2 Zeilen erledigt. Nur gibt es echt keinen Sinn für eine extra Funktion dafür...

Code: Select all
function downloadfile($anfangen) {
...
}

Das macht wohl deine eigentliche Umwandlung. Gehört dann eigentlich deine preg_match auch hier rein... du willst ja im wbb nur eine Funktion an passender Stelle einbauen. Hab auch nich nicht verstanden, zuwas der Part mit der "Überlänge" und "%20" da ist?

Ansonsten bleibt zusammengefasst, beide Funktionen werden ja bisher gar nicht benutzt in deinem Script.

Also nochmal. Wie sind die 3 Antworten auf meine 3 Fragen vorher und dann kann man dir zeigen wie es geht.
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby red171 » 12. July 2004 19:05

frage eins

ja

frage 2

ja

frage 3

ich denke ja
ich weis nicht genau wie du das meinst
ebend wieder zurück geben und ersetzen ne...

zu deinen commentaren usw.

ich lass mir gerne sagen was falsch ist und was ok ist

ich dachte mir auch das da viel schwachsinn drinne steht...
aber aus fehlern lernt man und ich bin in php noch nicht alt zu begabt
ich hab mir zwar nen eigene site komplett gebaut usw auch eigenes GB usw.

aber das mit dem arrays macht mir ebend so zu schaffen...
red171
 

Postby Wiedmann » 12. July 2004 20:02

Dann probiers mal damit:
Code: Select all
<?php
// Hier der Eintrag wie er von WBB kommt
$wbb_beitrag =
'Mädchen sind keine Indianer. Indianer kennen nämlich keinen Schmerz und dürfen deshalb nicht weinen. <br />
Mädchen weinen aber oft gerne. Jungs weinen eigentlich nie und wenn, <br />
ajfsp://file|datei 11.mpg|064cee3b87f0d84c473706a90637f674|735062020/<br />
dann zeigen sie es keinem, weil es peinlich ist.<br />

Überhaupt haben die Mädchen mehr Gefühl als die Jungen und mehr Haare, die sie lang wachsen lassen. <br />
Jungs sind praktischer. Kurze Haare machen wenig Arbeit. <br />
Meine große Schwester steht jeden Morgen eine Stunde vor dem Spiegel, ich gar nicht. <br />
ajfsp://file|datei 22.mpg|04347d20ba40fc29f88782c08a94ee27|704915680|192.168.0.5/<br />
Da verändert sich ja doch nichts. Bei ihr eigentlich auch nicht - aber sie macht das trotzdem. <br />
Mädchen können halt nicht logisch denken.<br />
ajfsp://server|red171.mine.nu|4555/<br />
Jungs wachsen später Haare im Gesicht und auf der Brust. <br />

Mädchen wachsen Brüste. <br />
ajfsp://file|datei 33.mpg|3c3f4b921ab310c97385fbdc146bdfd2|712461708/<br />
Deshalb haben sie auch im Sommer immer obenrum was an...<br />';

// diese Funktion parsed die Links im Eintrag und gibt sie auch einzeln zurück, wenn gewünscht
function parse_ajfsp_links($beitrag, $modus = 0) {
    $links = array();

    if ('' == $beitrag) {
        // wenn der Beitrag leer ist gleich wieder zurück
        return false;
    } else {
        // mache ein Array aus dem Beitrag. Jede Zeile ein Element
        $beitrag = explode("\n", $beitrag);
        $i = 0;
        // durchsuche das Array
        foreach ($beitrag as $key => $value) {
            if (false === strpos($value, 'ajfsp://')) {
                // Wenn kein Link in der Zeile, Zeile direkt ins Ausgabearray schreiben
                $beitrag_geparsed[$key] = $value;
            } else {
                // Unerwünschte Zeichen aus der Linkzeile entfernen
                $links[$i] = trim(strip_tags($value));
                // mache ein Array aus dem Archiv
                $aktuell_link = explode('|', $links[$i]);
                if (array_key_exists(1, $aktuell_link)) {
                    // hole den (Link)Dateinamen aus dem Array
                    $linkname = $aktuell_link[1];
                } else {
                    // (Link)Dateinamen ist nicht vorhanden
                    $linkname = '';
                }
                if (array_key_exists(3, $aktuell_link)) {
                    // hole die (Link)Dateigröße aus dem Array
                    $linkgroesse = round($aktuell_link[3] / 1024 / 1024, 2);
                } else {
                    // (Link)Dateigröße ist nicht vorhanden
                    $linkgroesse = 0;
                }
                // setze die Zeile mit dem Link neu zusammen und schreibe sie ins Ausgabearray
                $beitrag_geparsed[$key] = '<b>» </b><a href="'.$links[$i].'" title="'.$linkname.'">'.$linkname.'</a> '.$linkgroesse.' [MB]<br />'."\n";
                $i++;
            }
        }
        // mache einen String aus dem Ausgabearray
        $beitrag_geparsed = implode('', $beitrag_geparsed);
        // 2. Parameter der Funktion überprüfen
        switch ($modus) {
            case 0:
            // wenn Parameter 0 oder nicht vorhanden, gibt den geparsten Beitrag zurück
            return $beitrag_geparsed;
            break;

            case 1:
            // wenn Parameter 1 gib nur die Links als Text zurück
            return implode('<br />'."\n", $links);
            break;

            case 2:
            // wenn Parameter 2 gib nur die Links als Array zurück
            return $links;
            break;
        }
    }
}
?>

<!-- Ab hier jetzt eine Testseite wo die eine Funktion benutzt -->
<html>
<head>
<title>appleJuice-Link Umwandlung -- Test4</title>
</head>
<body bgcolor="#666666" text="#000000">

<hr width="80%" align="left">
<b>Orginalbeitrag aus WBB:</b>
<br />
<?php echo $wbb_beitrag; ?>
<br />

<hr width="80%" align="left">
<b>Der fertig geparste Text einschliesslich umgewandelter aj-Links:</b>
<br />
<?php echo parse_ajfsp_links($wbb_beitrag); ?>
<br />

<hr width="80%" align="left">
<b>Die Links einzeln aufgelistet:</b>
<br />
<?php echo parse_ajfsp_links($wbb_beitrag, 1); ?>
<br />

<hr width="80%" align="left">
<b>Die Links zurückgegeben als Array:</b>
<br />
<pre><?php print_r(parse_ajfsp_links($wbb_beitrag, 2)); ?></pre>
<br />
</body>
</html>


Soweit die Funktion ohne preg_match_all (ich pers. machs halt immer gern ohne preg wenns auch ohne geht). Sollten die Links doch auch mitten im Text (nicht einzeln auf einer Zeile) vorkommen, muß man die Funktion nachmal an 3-4 Stellen änderen und das preg_match_all.

NACHTRAG:
Hier dann noch dieselbe Funktion mit preg_match_all:
Code: Select all
// diese Funktion parsed die Links im Eintrag und gibt sie auch einzeln zurück, wenn gewünscht
function parse_ajfsp_links($beitrag, $modus = 0) {
    if ('' == $beitrag) {
        // wenn der Beitrag leer ist gleich wieder zurück
        return false;
    } else {
        // Suche die Links im Beitrag und mache ein Array daraus
        if (0 < ($link_vorhanden = preg_match_all('|(ajfsp:\/\/file)(.*)(\/)|U', $beitrag, $links))) {
            $links = $links[0];
            // jeden Link im Array bearbeiten
            foreach($links as $key => $value) {
                // mache ein Array aus dem Link
                $neuer_link[$key] = explode('|', $value);
                if (array_key_exists(1, $neuer_link[$key])) {
                    // hole den (Link)Dateinamen aus dem Array
                    $linkname = $neuer_link[$key][1];
                } else {
                    // (Link)Dateinamen ist nicht vorhanden
                    $linkname = '';
                }
                if (array_key_exists(3, $neuer_link[$key])) {
                    // hole die (Link)Dateigröße aus dem Array
                    $linkgroesse = round($neuer_link[$key][3] / 1024 / 1024, 2);
                } else {
                    // (Link)Dateigröße ist nicht vorhanden
                    $linkgroesse = 0;
                }
                // Schreibe den neuen Link in ein Array
                $neuer_link[$key] = '<b>» </b><a href="'.$links[$key].'" title="'.$linkname.'">'.$linkname.'</a> '.$linkgroesse.' [MB]';
            }
            // ersetze die Links im Beitrag
            $beitrag_geparsed = str_replace($links, $neuer_link, $beitrag);
        }
        // 2. Parameter der Funktion überprüfen
        switch ($modus) {
            case 0:
            // wenn Parameter 0 oder nicht vorhanden, gibt den geparsten Beitrag zurück
            if ($link_vorhanden) {
                return $beitrag_geparsed;;
            } else {
                return $beitrag;
            }
            break;

            case 1:
            // wenn Parameter 1 gib nur die Links als Text zurück
            if ($link_vorhanden) {
                return implode('<br />'."\n", $links);
            } else {
                return '';
            }
            break;

            case 2:
            // wenn Parameter 2 gib nur die Links als Array zurück
            if ($link_vorhanden) {
                return $links;
            } else {
                return array();
            }
            break;
        }
    }
}
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby red171 » 13. July 2004 19:34

hey viel dank das du das so schnell hinbekommen hast

ich hab mir das alles mal angeschaut und bin echt erstaunt das dass alles so einfach und simple gehn kann

aber erstmal drauf kommen

das script habe ich jetzt wie folgt bei mir in das wbb2 eingebaut und es funzt wunderbar

die function mit preg match all habe ich in die functions.php eingebaut

(da die links zerstreut im text vorkommen und auch mal "!MITTEN!" drinnen sind)

und für die thread php hab ich einfach

Code: Select all
 
/// das hab ich selber gemacht erklärung kommt
$posts['message'] = eregi_replace("\\[url=ajfsp([^\\[]*)\\]([^\\[]*)\\[\\/url\\]","ajfsp\\1",$posts['message']);

/// das is schon im wbb drinne gewesen..  $posts['message']=$this->parse->doparse($posts['message'],$posts['allowsmilies'],$posts['allowhtml'],$posts['allowbbcode'],$posts['allowimages']);
 
/// das ist dein aufruf der function der wunderbar funzt
$posts['message'] = parse_ajfsp_links($posts['message']);


zu dem ersten mit den [url=
vorher waren links schon gepostet die mir dem bb-code [url=
zum link gemacht wurden und wo nie das detail des link namens stand und nie der größen code
da ich nicht wollte das mein team über 3000 threads editiert habe ich das schnell so gemacht..

viele vielen danke nochmal für deine schnelle und großzügige hilfe

mfg

rEd
red171
 

Postby llcoolj24 » 16. January 2007 23:55

kann mir bitte einer sagen welcher code in die functions.php kommt und an welcher stelle ich den einfügen muß???
Und der andere code

$posts['message'] = eregi_replace("\\[url=ajfsp([^\\[]*)\\]([^\\[]*)\\[\\/url\\]","ajfsp\\1",$posts['message']);



/// das ist dein aufruf der function der wunderbar funzt
$posts['message'] = parse_ajfsp_links($posts['message']);

in der thread.php soll der rein versteh aber nicht wo ich bekomme immer nen fehler wenn ich den irgendwo reinschmeisse.

vielen dank

ll
llcoolj24
 
Posts: 4
Joined: 16. January 2007 23:50

Postby red171 » 17. January 2007 00:00

auch wenn das thema ewig alt ist,

in meinem letzten post steht doch genau wo?

da steht doch

/// das is schon im wbb drinne gewesen.. $posts['message']=$this->parse->doparse($posts['message'],$posts['allowsmilies'],$posts['allowhtml'],$posts['allowbbcode'],$posts['allowimages']);


da DRUNTER

such einfach diese zeile (oder eine so ähnliche..) -.-"

anleitung:

du packst die FUNCTION oben in die functions.php

in der thread.php suchst du eine zeile die so aussieht wie die oben fett gedruckte, und packst es dort drunter, ggf variablen anpassen fals sich seit den letzten wbb versionen was getan hat.

fertig..
red171
 

Postby llcoolj24 » 17. January 2007 00:11

so lautet der abschnitt:

// use postcache if possible
if ($posts['cache']) $posts['message'] = $this->parse->parseCache($posts['cache']);
else $posts['message'] = $this->parse->doparse($posts['message'], $posts['allowsmilies'], $posts['allowhtml'], $posts['allowbbcode'], $posts['allowimages'], check_selfposted($wbbuserdata['userid'],$this->threadid), check_threadstarter($wbbuserdata['userid'],$this->threadid), check_selfthx($wbbuserdata['userid'],$this->threadid));

so geändert:

// use postcache if possible
if ($posts['cache']) $posts['message'] = $this->parse->parseCache($posts['cache']);
else $posts['message'] = $this->parse->doparse($posts['message'], $posts['allowsmilies'], $posts['allowhtml'], $posts['allowbbcode'], $posts['allowimages'], $posts['message'] = parse_ajfsp_links($posts['message']); check_selfposted($wbbuserdata['userid'],$this->threadid), check_threadstarter($wbbuserdata['userid'],$this->threadid), check_selfthx($wbbuserdata['userid'],$this->threadid));

dieser Fehler kommt:

Parse error: syntax error, unexpected ';' in /home/dmin830/public_html/thread.php on line 120

:cry:

greetz

ll
llcoolj24
 
Posts: 4
Joined: 16. January 2007 23:50

Postby red171 » 17. January 2007 00:14

änder es mal so

if ($posts['cache']) $posts['message'] = $this->parse->parseCache($posts['cache']);
else $posts['message'] = $this->parse->doparse($posts['message'], $posts['allowsmilies'], $posts['allowhtml'], $posts['allowbbcode'], $posts['allowimages'], $posts['message'] = parse_ajfsp_links($posts['message']), check_selfposted($wbbuserdata['userid'],$this->threadid), check_threadstarter($wbbuserdata['userid'],$this->threadid), check_selfthx($wbbuserdata['userid'],$this->threadid));
red171
 

Next

Return to PHP

Who is online

Users browsing this forum: No registered users and 1 guest