Function in een Function werkt niet..

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Mark

Mark

16/01/2006 17:28:00
Quote Anchor link
Hoi ben ik weer,

Ik heb dit probleem normaal altijd anders verholpen maar deze keer heb ik het eigenlijk gewoon nodig. Ik heb 2 functies (UBB en Afkorten). De tekst wordt na 400 worden afgekapt maar ik wil hem ook graag al ge'UBB'd

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?
$tekst
    = Inkorten("". $obj->bericht. "","400");

bb_bericht("$tekst");
?>


Kan ik het ook zo doen dat ik kan PARSEN & Inkorten tegelijk?
Gewijzigd op 16/01/2006 17:29:00 door Mark
 
PHP hulp

PHP hulp

08/11/2024 01:45:25
 
Martijn B

Martijn B

16/01/2006 17:44:00
Quote Anchor link
Denk niet dat het slim is om eerst de functie bb_berict te doen en daarna de functie inkorten aan te roepen. Maar jij vraagt het, dus:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
// Ik neem aan dat bb_bericht
// het resultaat terug geeft.

$tekst = bb_bericht($tekst);

$tekst = Inkorten($tekst , 400);
?>
 

16/01/2006 17:47:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
function lalala ( $txt , $ink=400 ) {
   $txt    = Inkorten($txt ,intval($ink));
   $txt    = bb_bericht($txt); // variabelen buiten de quotes houden!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
}

$tekst = lalala($obj->bericht, 400);

?>
 
Mark

Mark

16/01/2006 17:50:00
Quote Anchor link
verklaar je nader over dat het niet slim is,

je oplossing geeft:
niks dus... er komt helemaal niks meer uit.
 
Martijn B

Martijn B

16/01/2006 17:51:00
Quote Anchor link
Sebastiaan:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
function lalala ( $txt , $ink=400 ) {
   $txt    = Inkorten($txt ,intval($ink));
   $txt    = bb_bericht($txt); // variabelen buiten de quotes houden!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
}

$tekst = lalala($obj->bericht, 400);

?>


De 2 regels in de functie lalala moet dan omgedraaid.
 

16/01/2006 17:53:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
function lalala ( $txt , $ink=400 ) {
   $txt    = Inkorten($txt ,intval($ink));
   $txt    = bb_bericht($txt); // variabelen buiten de quotes houden!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
   return $txt;
}


$tekst = lalala($obj->bericht, 400);

?>

Typo :-)
 
Mark

Mark

16/01/2006 17:54:00
Quote Anchor link
@sebastiaan... er komt ook niks uit, gewoon standaard tekst

Het is voor een nieuwsysteem die de nieuwste 4 berichten neemt.
 
Martijn B

Martijn B

16/01/2006 17:55:00
Quote Anchor link
Hoe zijn je functies gedefineerd dus alleen even de regel met "function bb_bericht en Inkorten" hier posten.


Het lijkt mij niet slim omdat je dan b.v. een html tabel of lijst door de midden hakt met de functie Inkorten. Hierdoor krijg je verkeerde html of een verkeerde layout.
Gewijzigd op 16/01/2006 17:57:00 door Martijn B
 

16/01/2006 17:55:00
Quote Anchor link
Je moet dan even error_reporting(E_ALL); bovenaan je script plakken :-)
 
Mark

Mark

16/01/2006 18:18:00
Quote Anchor link
Quote:
Het lijkt mij niet slim omdat je dan b.v. een html tabel of lijst door de midden hakt met de functie Inkorten. Hierdoor krijg je verkeerde html of een verkeerde layout.
Hoe zie je dat nou weer in elkaar zitten dan? Wat ingekort wordt is gewoon alleen tekst, gewoon tekst. geen divs, tabellen...

Inkorten
Function Inkorten($string, $tekens)
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<? {
 $aantal = strlen($string);
 if($aantal > $tekens)
  {

  $string = substr("$string", 0, $tekens);  
  $string = "$string...";
  }

 echo $string;
 }

?>

UBB
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?

function bb_bericht ($bericht)
{

**
codes **
$bericht = preg_replace("#\[b\](.*?)\[/b\]#si", "<b>\\1</b>", $bericht);
etc.
**
codes**
$bericht = nl2br(stripslashes($bericht) );

return $bericht;
}

?>

En dit werkt wel op een andere site waar ik niet en inkorten en ubb gebruik
Gewijzigd op 16/01/2006 18:22:00 door Mark
 
Mark

Mark

16/01/2006 18:33:00
Quote Anchor link
En ik krijg niks met error reporting all, ik ga er van uit dat je hem boven aan je pagina plakt met
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? en ?>
 
Jan Koehoorn

Jan Koehoorn

16/01/2006 18:43:00
Quote Anchor link
in de functie inkorten moet je ook een return zetten. Er staat nu een echo en dan geeft hij de string niet terug.

edit: en daarna moet je dan
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$tekst
= ubb (inkorten ($tekst));
?>

kunnen doen
Gewijzigd op 16/01/2006 18:44:00 door Jan Koehoorn
 
Mark

Mark

16/01/2006 18:46:00
Quote Anchor link
Dus"

{
$aantal = strlen($string);
if($aantal > $tekens)
{
$string = substr("$string", 0, $tekens);
$string = "$string...";
}
return $string;
echo $string;
}

dan geeft hij weer niks aan, ik heb dit nu in totaal boven aan staan, omdat de functie news niet aangeroepen kan worden.

Bovenaan
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?
require ("mysql_connect.php");
Function
Inkorten($string, $tekens)
 {

 $aantal = strlen($string);
 if($aantal > $tekens)
  {

  $string = substr("$string", 0, $tekens);  
  $string = "$string...";
  }

 return $string;
 echo $string;
 }

function
news ( $txt , $ink=400 ) {
               $txt    = Inkorten($txt ,intval($ink));
               $txt    = bb_bericht($txt);
        }

 ?>


en dit waar de ingekorte en geparste tekst moet komen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
 $txt
= news($obj->bericht, 400);
?>


of....... ik denk dat ik nu 3 antwoorden door elkaar gooi is het niet?
Gewijzigd op 16/01/2006 18:50:00 door Mark
 
Martijn B

Martijn B

16/01/2006 19:21:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?
function Inkorten($string, $tekens)
{

$aantal = strlen($string);
if($aantal > $tekens)
  {

  $string = substr($string, 0, $tekens) . '...';  
  }

//echo $string;
return $string;
}

function
bb_bericht ($bericht)
{

**
codes **
$bericht = preg_replace("#[b](.*?)[/b]#si", "<b>\\1</b>", $bericht);
etc.
**
codes**
$bericht = nl2br(stripslashes($bericht) );

return $bericht;
}


// functie aanroep
$tekst = bb_bericht(Inkorten($tekst, 400));
?>
Gewijzigd op 16/01/2006 19:24:00 door Martijn B
 
Mark

Mark

16/01/2006 19:30:00
Quote Anchor link
...niks maar wat heb je veranderd aan de parser?
 
Martijn B

Martijn B

16/01/2006 19:36:00
Quote Anchor link
Ok, tijd voor een voorbeeldje:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php

function test1( $parameter1 )
{

  // Doe hier iets met $parameter1
  $parameter1 .= 'fdsfsdf';

  // Geef $parameter1 terug als resultaat
  return $parameter1;
}

function
test2( $parameter1, $parameter2  )
{

  // Doe hier iets met $parameter1 en / of $parameter2
  $resultaat = $parameter1 . $parameter2;

  // Geef het resultaat terug
  return $resultaat;
}


$iets = 'fsdfsdfsdfwrvcv-';

$iets = test1(test2($iets, 'fdsfsdf'));

echo $iets;
?>


Meer is het niet...
Gewijzigd op 16/01/2006 19:37:00 door Martijn B
 
Mark

Mark

16/01/2006 20:06:00
Quote Anchor link
als het goed is, zo dus:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?
function Inkorten($string, $tekens)
{

$aantal = strlen($string);
if($aantal > $tekens)
  {

  $string = substr($string, 0, $tekens) . '...';  
  }

//echo $string;
return $string;
}



$tekst = $obj->bericht;

$tekst = bb_bericht(Inkorten($tekst, '400'));

echo $tekst;
?>


en anders..... dan geen ubb of geen inkorten bericht
Gewijzigd op 16/01/2006 20:08:00 door Mark
 
Mark

Mark

16/01/2006 20:11:00
Quote Anchor link
Masterlijk, eindelijk het werkt.

Super bedankt!
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.