Skip to content

Plocka ut slumpad mening från text

by Jarsäter Joakim on mars 25th, 2010
php

Satt idag och klurade lite på hur man skulle kunna plocka ut en slumpad mening från en textmassa, till exempel från en post i ett forum eller liknande. Det var faktiskt lättare än vad jag trodde och krävde inte speciellt mycket kod alls.

Har du några frågor, funderingar eller glädjerop. Tveka inte att kommentera längst ner. Om du behöver hjälp med så skicka ett meddelande via mail eller Twitter.

/*
*	Vi utgår från att vi har hämtat en post från
*	databasen och att texten har sparats i följande
*	variabel, $rndPostText;
*
*	Om vi även vill slumpa fram en post kan vi göra
*	det direkt i våran SQL-fråga;
*
*	SELECT * FROM tbl WHERE 1 ORDER BY RAND() LIMIT 1;
*
*/
$rndPostText = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam nunc neque, bibendum non ornare in, congue a libero. Donec convallis hendrerit lorem, nec ultrices leo congue a. Quisque felis enim, sagittis sit amet fermentum a, semper sit amet erat. Duis molestie erat eget nibh luctus et blandit nibh lacinia. Mauris vel tortor justo, non fermentum erat. Cras blandit scelerisque ligula vel sagittis. Aliquam sed magna eu velit vulputate vulputate. Nulla tempor odio in nulla feugiat euismod. Nullam vel odio augue. Praesent aliquam, arcu eget pharetra vulputate, diam odio laoreet nisi, vitae consectetur massa enim vel est. Integer a tellus nec lectus consectetur venenatis sed at metus. Duis quis ipsum libero, eu feugiat diam. In hac habitasse platea dictumst. Donec hendrerit orci eu lectus consequat vel rhoncus elit sagittis. Aenean imperdiet iaculis ultricies. Nulla in placerat metus. Nulla accumsan tincidunt dolor sed laoreet. Nunc sit amet massa quis nisl cursus mollis nec tristique mi. Praesent dignissim urna ac nunc porttitor blandit.

Curabitur dignissim eros vitae massa mollis lacinia id sodales leo. Duis tortor felis, accumsan eget sodales id, cursus id ante. Aenean lacinia dictum dignissim. Sed dictum congue libero id congue. Suspendisse sem neque, imperdiet sit amet fermentum at, adipiscing vel turpis. Cras sit amet lacus est, ut rhoncus sapien. Ut hendrerit, mi a sagittis mattis, nibh risus convallis nunc, non accumsan enim orci a justo. Pellentesque quis dui augue, at congue tellus. Integer adipiscing pretium turpis a imperdiet. Pellentesque luctus fermentum quam, vel pulvinar magna luctus quis. Praesent nibh enim, sagittis quis blandit vitae, vestibulum sed purus. Pellentesque malesuada, dolor sed dapibus volutpat, nulla ligula iaculis turpis, quis ultrices nulla libero id ipsum.";

/*
*	Vi tar postens text och splittar upp den till en
*	slpit() som används på följande sätt
*
*	split  (  string $pattern  ,  string $string  [,  int $limit  ] )
*	http://se.php.net/split
*/
$rndPostTextSplit = split("[\n\r\t\.\!\?]+", $rndPostText);

/*
*	Nu kan vi använda oss av den inbyggda
*	PHP-funktionen array_rand;
*
*	array_rand  (  array $input  [,  int $num_req = 1  ] )
*	http://se.php.net/array_rand
*/
echo $rndPostTextSplit[array_rand($rndPostTextSplit, 1)];

/**
*	Detta kan då ge utskrifterna:
	#1 Donec hendrerit orci eu lectus consequat vel rhoncus elit sagittis
	#2 Duis tortor felis, accumsan eget sodales id, cursus id ante
	#3 Aenean lacinia dictum dignissim
	#4 Praesent aliquam, arcu eget pharetra vulputate, diam odio laoreet nisi, vitae consectetur massa enim vel est
	#5 Mauris vel tortor justo, non fermentum erat
	...
*/

Läsning

OBS!

Funktionen split(); som vi använder i scriptet kommer försvinna från PHP från och med PHP 6.0.0.

This function has been DEPRECATED as of PHP 5.3.0 and REMOVED as of PHP 6.0.0. Relying on this feature is highly discouraged.

Därför rekommenderar jag att man tar en extra koll på vilken version just ditt webbhotell kör om du vill använda scriptet på din sida. Det finns däremot en annan funktion man kan använda sig av, läs mer om preg_split(); här

From → PHP, Tips & Trix

No comments yet

Leave a Reply

Note: XHTML is allowed. Your email address will never be published.

Subscribe to this comment feed via RSS