Ga naar inhoud

String-'cut-off' produceren in PHP met een var uit de DB


Aanbevolen berichten

'middag alweer, Voor een search-engine wil ik een omschrijving van een bijbehorend bedrijf af kunnen kappen met '...'. Op deze manier: Originele omschrijving: 'Deze omschrijving is veeeel te lang.' Afgekapte omschrijving: 'Deze omschrijving...' De hiervoor geschreven functie werkt goed, alleen niet bij een repeat(region). Ik begrijp waarom dit zo is, want de functie staat immer niet zélf in de repeat. Doe ik dit wel, dan krijg ik na één resultaat de volgende error: Fatal error: Cannot redeclare gomotion_string_cutoff() in /opt/guide/www.klussenbank.nl/HTML/www/content/advert_search_results.php on line 226 Ik begrijp ook waarom het niet werkt, maar heb zo een twee drie geen oplossing. De betreffende functie: <?php $string=$Rs_advert_search_results->Fields("omschrijving"); function GoMotion_string_cutoff($string) { $max_string_size=10; global $string; if (strlen($string) > $max_string_size) { $row = explode(" ", $string); if (strlen($row[0]) < $max_string_size) { for ($i=0; $i < count($row); $i++) { if(strlen($string_result." ".$row[$i]) < $max_string_size) { if ($i == 0) { $string_result=$row[$i]; } else { $string_result=$string_result." ".$row[$i]; } } } } else { $string_result = substr($string, 0, $max_string_size); } $string = "$string_result"."..."; } return $string; } ?> <?php GoMotion_string_cutoff($string); ?> <?php echo $string; ?> Ik zal het verder niet té lang maken; Op verzoek wil ik nog wel de rest van de code posten. Alvast bedankt ;D Djurre
Link naar reactie
[quote:d5fa53ef53] [b:d5fa53ef53]Op 20-03-2002 16:26, schreef nssadmin:[/b:d5fa53ef53] Op verzoek wil ik nog wel de rest van de code posten. [/quote:d5fa53ef53] Nou als dat net zo'n rommeltje is als wat hierboven staat dan laat maar :wink: [list:d5fa53ef53] [*:d5fa53ef53]inspringen GOOD, niet inspringen BAD!, [*:d5fa53ef53]je gebruikt globals en parameters voor de functie met dezelfde naam, [*:d5fa53ef53]je return-ed een waarde terwijl je daar niets mee doet, [/list:u:d5fa53ef53] Kortom het is een bende (en dan druk ik me zeer vriendelijk uit). Verder mis ik in bovenstaand verhaal een duidelijke beschrijving van wat de functie nu echt moet doen. Afkappen en "..." toevoegen kan namelijk veel makkelijker. Ik vermoed dat je dus ook woorden intakt wil laten? En ik begrijp niet helemaal waar het nu fout gaat. repeat(region)?? Kan aan mij liggen maar ik heb er nog nooit van gehoord. Dus zonder duidelijk verhaal en duidelijke code kan (en wil) ik je iig niet verder helpen.
Link naar reactie
Ben je nu nóg aan reageren op rare posts, Annie? Het is al vijf uur geweest hoor :grin: Bedankt voor je reactie, je hebt gelijk, er zitten ook nog wat oude resten (test)code tussen. Wat betreft het inspringen, dit is blijkbaar niet goed bewaard gebleven; ik doe dat namelijk áltijd :wink: Een repeat-region is een soort 'repeat-until'-term die Macromedia hanteert voor het presenteren van database-records of andere elementen. Simpel gezegd: <table> <begin herhaling (repeat region!)> <tr><td> <?php echo $database-("omschrijving"); ?> </td></tr> <ga na volgend record en herhaal dit tot $database==EOF> </table> Mijn probleem: Zet ik de functie bovenaan de pagina, dan werkt het in principe goed. Alleen nu krijgen alle opgevraagde records dezelfde waarde voor hun omschrijving - die va het eerste record. Logisch - want de functie maakt geen deel uit van de 'repeat region'. Als ik de functie probeer te integreren in de loop, krijg ik dus de eerder beschreven error-melding. En inderdaad, de woorden blijven als het goed is met deze functie in tact. (Heb dit nog niet kunnen bekijken, Mxstream hield er om 16.59u spontaan mee op :smile: ) Omdat ik nu thuis zit kan ik de rest van de code (waaronder de repeater) pas morgenvroeg (dus rond een uur of één :grin: ) posten. Misschien dat je nu al een suggestie/beter idee hebt? Tot morgen en een goeienavond, Djurre
Link naar reactie
Om een beter idee te krijgen van mijn probleempje: http://www.klussenbank.nl/www/content/content_p6_0.php Zoek alleen op bedrijfsnaam met 'yarka', vergeet de rest van de invulvelden. vr.gr. Djurre PS: wat vinden we van de enigzins verbeterde beta van Klussenbank.nl? :smile: _________________ Wij werken hier met fun, friendship, finance :grin: [ Dit Bericht is bewerkt door: nssadmin op 2002-03-20 21:21 ]
Link naar reactie
Allereerst LOL @ signature :smile: Zoals je het nu omschrijft zou dat wel eens kunnen liggen aan het feit dat je gebruik van variabelen nogal te wensen over laat in bovenstaand voorbeeld (hergebruik van globals). En de oplossing om de functie dan maar in de loop (repeat region) te zetten lijkt dan logisch maar is het natuurlijk niet (vandaar de foutmelding). Onderstaande pseudo zooi is de manier om het aan te pakken. De functie declareren [b:1be3a86143]buiten[/b:1be3a86143] de loop en deze gewoon binnen de loop aanroepen met telkens een andere waarde. [code:1:1be3a86143] <?php function goMotion_string_cutoff($str) { // hier dus je functie waarbij $str natuurlijk eerst nog bewerkt moet worden voor je deze teruggeeft return ($str); } ?> <begin repeat> <?php echo goMotion_string_cutoff($database-("omschrijving")); ?> <end repeat> [/code:1:1be3a86143] [ Dit Bericht is bewerkt door: Annie op 2002-03-20 21:30 ]
Link naar reactie
Hallo Annie, Na mijn gehaaste poging de trein te halen, een half broodje kaas van de kiosk te verorberen, op alle knopjes in de lift te drukken, koffie te zetten en mijn collega's en bijbehorende machinerie wakker te schudden zal je oplossing als eerste worden getest... :grin: Bedankt, enne... Annie's een inspirator :wink: Djurre
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

  • Populaire leden

    Er is nog niemand die deze week reputatie heeft ontvangen.

  • Leden

    Geen leden om te tonen

×
×
  • Nieuwe aanmaken...