php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2007

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 14.11.2006, 14:11  
Erfahrener Benutzer
 
Registriert seit: 19.03.2006
Beiträge: 413
Kein Genie zeigte ein beschämendes Verhalten in der Vergangenheit
Kein Genie eine Nachricht über ICQ schicken Kein Genie eine Nachricht über Skype™ schicken
Standard Problem mit Funktion

Hallo,

das ist meine Funktion:

PHP-Code:
<?php
function bbcode($bbcode)
{
   
$aBbcode = array();
   
$aBbcode['[quote]'] = '<div id="quote">[b]<u>Zitat:</u>[/b]

'
;
   
$aBbcode['[/quote]'] = '</div>';
   
$aBbcode['[b]'] = '[b]';
   
$aBbcode['[/b]'] = '[/b]';
   
$aBbcode['[i]'] = '[i]';
   
$aBbcode['[/i]'] = '[/i]';
   
$aBbcode['[u]'] = '<u>';
   
$aBbcode['[/u]'] = '</u>';
   
$aBbcode['[s]'] = '<s>';
   
$aBbcode['[/s]'] = '</s>';
   
$aBbcode['[center]'] = '<center>';
   
$aBbcode['[/center]'] = '</center>';
   
$aBbcode['[hr]'] = '<hr>';

    
$bbcode preg_replace("~\[url\](.+?)\[/url\]~si"'[url="\\1"]\\1[/url]'$bbcode);
    
$bbcode preg_replace("~\[email\](.+?)\[/email\]~si"'<a href=mailto:\\1>\\1</a>'$bbcode);
    
$bbcode preg_replace("~\[img\](.+?)\[/img\]~si"'<center><div id=img>[url="\\1"]<img border=0 src=\\1>[/url]</div></center>'$bbcode);
   
   foreach (
$aBbcode as $sSearch => $sReplace)
    
$bbcode str_replace($sSearch$sReplace$aBbcode);
    
$bbcode nl2br $bbcode );
  
   return 
$bbcode;

?>
Folgende Medlung bekomme ich beim ausführen:

Notice: Array to string conversion in D:\Web\xampp\htdocs\jugend\includes\bbcode.php on line 25

Notice: Array to string conversion in D:\Web\xampp\htdocs\jugend\includes\bbcode.php on line 25

Wenn ich
PHP-Code:
$bbcode nl2br $bbcode ); 
dann wird nur folgendes ausgeben:

Array

Mehr nicht.
Wo habe ich meinen Fehler?

Danke
Kein Genie ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 14.11.2006, 14:30  
¯\_(ツ)_/¯
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.814
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

foreach ($aBbcode as $sSearch => $sReplace)
$bbcode = str_replace($sSearch, $sReplace, $aBbcode);

Schaumal hier ist der 3te Parameter bei str_replace das Array aus dem foreach() ... sollte das nicht eher der Text sein in dem der BBCode ersetzt werden soll?

Außerdem brauchst du keine Schleife da str_replace auch Arrays annimmt also:

$string = 'sag mal [ b]was[ i]';
$a = array('[ b]','[ i]');
$b = array('[b]','[i]');
$string = str_replace($a, $b, $string);

Dann wird [ b] mit [b] ersetzt und [ i] mit [i]
__________________
▇█▓▒░◕‿‿◕░▒▓█▇
Flor1an ist offline  
Alt 14.11.2006, 15:42  
Erfahrener Benutzer
 
Registriert seit: 08.11.2004
Beiträge: 2.079
Der_Gerhard ist zur Zeit noch ein unbeschriebenes Blatt
Der_Gerhard eine Nachricht über ICQ schicken
Standard

Alleine für diese Einrückung hier sollte es einen Sonderpreis geben:

PHP-Code:
<?php

   
foreach ($aBbcode as $sSearch => $sReplace)
    
$bbcode str_replace($sSearch$sReplace$aBbcode);
    
$bbcode nl2br $bbcode );

?>
Wie der Preis aussehen könnte weiß ich noch nicht ganz. Finger ab wäre für den Anfang net verkehrt.
__________________
**********************************
Nein, ich bin nicht die Signatur.
Ich putze hier nur.
**********************************
Der_Gerhard ist offline  
Alt 14.11.2006, 22:24  
Erfahrener Benutzer
 
Benutzerbild von GelaMu
 
Registriert seit: 05.03.2006
Beiträge: 183
GelaMu
Standard

@Der_Gerhard
der war echt gut
GelaMu ist offline  
Alt 15.11.2006, 00:30  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 34.241
PHP-Kenntnisse:
Fortgeschritten
nikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz sein
Standard

find ich nicht. der umgangston ist ganz schön rauh hier in letzter zeit. zynik find ich ok, aber 'finger ab' gehört wohl nicht zur nettiquette...

@kein genie:
laß einfavch foreach weg und ersetze
Code:
$bbcode = str_replace($sSearch, $sReplace, $aBbcode);
durch
Code:
$sSearch = array_keys($aBbcode);
$sReplace = array_values($aBbcode);
$bbcode = str_replace($sSearch, $sReplace, $bbcode);
dann wird alles gut
nikosch ist offline  
Alt 15.11.2006, 00:32  
Erfahrener Benutzer
 
Benutzerbild von GelaMu
 
Registriert seit: 05.03.2006
Beiträge: 183
GelaMu
Standard

Zitat:
Zitat von nikosch77
find ich nicht. der umgangston ist ganz schön rauh hier in letzter zeit. zynik find ich ok, aber 'finger ab' gehört wohl nicht zur nettiquette...
Och komm... sowas darf man doch net ernst nehmen
Lach einfach drüber
GelaMu ist offline  
Alt 15.11.2006, 00:43  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 34.241
PHP-Kenntnisse:
Fortgeschritten
nikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz sein
Standard

naja, vielleicht nimmt's ja der betroffene ernst.
nikosch ist offline  
Alt 15.11.2006, 00:50  
Erfahrener Benutzer
 
Benutzerbild von GelaMu
 
Registriert seit: 05.03.2006
Beiträge: 183
GelaMu
Standard

Ja, vielleicht schläft er ja gerade.
GelaMu ist offline  
Alt 11.03.2007, 12:13  
Erfahrener Benutzer
 
Registriert seit: 19.03.2006
Beiträge: 413
Kein Genie zeigte ein beschämendes Verhalten in der Vergangenheit
Kein Genie eine Nachricht über ICQ schicken Kein Genie eine Nachricht über Skype™ schicken
Standard

Hallo, meine Funktion sieht jetzt so aus:

PHP-Code:
<?php
function bbcode($bbcode)
{
   
$aBbcode = array();
   
$aBbcode['[ quote ]'] = '<div id="quote">[b]<u>Zitat:</u>[/b]

'
;
   
$aBbcode['[ /quote ]'] = '</div>';
   
$aBbcode['[b ]'] = '[b]';
   
$aBbcode['[/b ]'] = '[/b]';
   
$aBbcode['[i] '] = '[i]';
   
$aBbcode['[/i ]'] = '[/i]';
   
$aBbcode['[u ]'] = '<u>';
   
$aBbcode['[/u ]'] = '</u>';
   
$aBbcode['[s]'] = '<s>';
   
$aBbcode['[/s]'] = '</s>';
   
$aBbcode['[center]'] = '<center>';
   
$aBbcode['[/center]'] = '</center>';
   
$aBbcode['[left]'] = '<p align="left">';
   
$aBbcode['[/left]'] = '</p>';
   
$aBbcode['[right]'] = '<p align="right">';
   
$aBbcode['[/right]'] = '</p>';
   
$aBbcode['[block]'] = '<p align="justify">';
   
$aBbcode['[/block]'] = '</p>';
   
$aBbcode['[hr]'] = '<hr>';

    
$bbcode preg_replace("~\[url\](.+?)\[/url\]~si"'[url="\\1"]\\1[/url]'$bbcode);
    
$bbcode preg_replace("~\[email\](.+?)\[/email\]~si"'<a href=mailto:\\1>\\1</a>'$bbcode);
    
$bbcode preg_replace("~\[img\](.+?)\[/img\]~si"'<center><div id="img">[url="\\1"]<img border=0 src=\\1>[/url]</div></center>'$bbcode);
    
$bbcode preg_replace("~\[code\](.+?)\[/code\]~si"'<center><div id="code">\\1</div></center>'$bbcode);
    
$bbcode preg_replace("~\[edit\](.+?)\[/edit\]~si"'

<div id="edit">\\1</div>'
$bbcode);
    
$bbcode preg_replace("~\[php\](.+?)\[/php\]~smi"'<div id="php">'.highlight_string('\\1'true).'</div>'$bbcode); 
   
   foreach (
$aBbcode as $sSearch => $sReplace)
    
$bbcode str_replace($sSearch$sReplace$bbcode);
    
$bbcode nl2br $bbcode );
  
   return 
$bbcode;

?>
Wenn ich Daten ausgebe, gebe ich sie aus:

PHP-Code:
print_out($_GET['id'); 
Die Funktion die ich aufrufe sieht so aus:

PHP-Code:
function print_out ($data)
{
    return 
bbcode(smilies(htmlentities(stripslashes($data))));

Mein Problem, wenn ich einen PHP Code eingebe wird er ordentlich gephraset und die Tags auch ordentlich ersetzt, aber leider wird der komtpellte String nicht gehighlightet.
Warum nicht?
Kein Genie ist offline  
Alt 11.03.2007, 12:41  
Erfahrener Benutzer
 
Registriert seit: 13.08.2007
Beiträge: 1.976
KingCrunch befindet sich auf einem aufstrebenden Ast
KingCrunch eine Nachricht über ICQ schicken KingCrunch eine Nachricht über AIM schicken KingCrunch eine Nachricht über MSN schicken KingCrunch eine Nachricht über Yahoo! schicken
Standard

gehighlightet? Wo machstn das? ^^
__________________
Nicht jeder Fehler ist ein Bug.
KingCrunch ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine 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
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
JS: Einführung - Javascript im Schichtenmodell nikosch Tutorials 4 11.04.2009 17:06
[Erledigt] Problem mit ereg Funktion! Horvi PHP Tipps 2008 7 20.05.2008 14:29
Problem beim Aufruf einer Funktion elwood PHP Tipps 2008 6 30.08.2007 12:54
(schnellere) Funktion zum Zusammenfassen von CSS PHP-Fortgeschrittene 21 08.08.2005 16:47
In einer Funktion auf eine Funktion der Klasse zugreifen phpbeginner PHP Tipps 2005-2 2 28.07.2005 00:30
[Erledigt] Problem mit Backslash Patrick Schwarz PHP Tipps 2005-2 5 26.07.2005 09:54
Problem mit PFad Firefox - Verzeichnis löschen PHP Tipps 2005-2 0 19.07.2005 16:05
[Erledigt] Wie kann ich beliebig viele Werte an eine Funktion übergeben PHP Tipps 2005 11 25.01.2005 10:44
Problem bei Massenmails versenden mit der Funktion mail PHP-Fortgeschrittene 3 19.01.2005 13:36
problem mit der "die" funktion aircrash PHP Tipps 2005 2 08.01.2005 19:44
Problem mit Umsetzung einer Funktion Datenbanken 1 20.12.2004 14:37
problem mit update funktion aircrash PHP Tipps 2004-2 3 17.11.2004 16:55
Referenz auf Funktion übergeben PHP-Fortgeschrittene 7 20.07.2004 09:51
Problem mit Funktion PHP Tipps 2004 3 17.07.2004 14:30
Problem mit mail() - Funktion PHP Tipps 2004 2 06.07.2004 18:21


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:20 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.