Πρόβλημα με Short Story!!

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
apoelista88
Δημοσιεύσεις: 19
Εγγραφή: 11 Σεπ 2005 03:11

Πρόβλημα με Short Story!!

Δημοσίευση από apoelista88 » 13 Οκτ 2007 05:08

Γεία σας είμαι νέος στον χώρο του php και προσπαθώ να κάνω ένα news system σε php.
Συγκεκριμένα αυτό που δυσκολεύομαι να κάνω είναι το να διαβάζω απο την mysql database το περιεχόμενο και να εμφανίζω μόνο κάποια "εισαγωγή" του περιεχομένου
π.χ. τους πρώτους 100 χαρακτήρες και να μεταφέρομαι σε ολόκληρο το κείμενο με κάποιο κουμπί "Συνέχεια".

Έχω δοκιμάσει με την εντολή substr() αλλά κάπου έχω μπερδευτεί και χρειάζομαι βοήθεια...

Άβαταρ μέλους
dik_
Δημοσιεύσεις: 476
Εγγραφή: 07 Ιουν 2007 11:28

Πρόβλημα με Short Story!!

Δημοσίευση από dik_ » 13 Οκτ 2007 06:03

Πάρε μια ωραία function, που επιστρέφει τις πρώτες $n λέξεις ενός string (by default 100), στις οποίες προσθέτει στο τέλος και το $end_char (by default 3 τελείες):

Κώδικας: Επιλογή όλων

function word_limiter($str, $n = 100, $end_char = '…')
{
	if &#40;strlen&#40;$str&#41; < $n&#41;
		return $str;
	
	$words = explode&#40;' ', preg_replace&#40;"/\s+/", ' ', preg_replace&#40;"/&#40;\r\n|\r|\n&#41;/", " ", $str&#41;&#41;&#41;;
	
	if &#40;count&#40;$words&#41; <= $n&#41;
		return $str;
			
	$str = '';
	
	for &#40;$i = 0; $i < $n; $i++&#41;
		$str .= $words&#91;$i&#93;.' ';

	return trim&#40;$str&#41;.$end_char;
&#125;

Άβαταρ μέλους
Banavas
Script Master
Δημοσιεύσεις: 1367
Εγγραφή: 21 Νοέμ 2004 20:25
Επικοινωνία:

Πρόβλημα με Short Story!!

Δημοσίευση από Banavas » 13 Οκτ 2007 21:49

Dik
όπως πάντα εύστοχος.
Έχω χρησιμοποιήσει και εγώ κάτι ανάλογο και είναι πιό χρήσιμο να περιοριστεί το πλήθος των χαρακτήρων και όχι το πλήθος των λέξεων. Ο λόγος είναι οτι το πλήθος των λέξεων αν είναι μεγάλες μπορεί να ξεπερνάει τα όρια και να σπάει το design.

θα ήταν προτιμότερο να ελέγχεται το πλήθος των χαρακτήρων αλλά η πρόταση να κόβεται στο τέλος της προηγούμενης λέξης, για να μην κόβεται η λέξη στη μέση.
Happy coding....
Μάρκος
http://lasernet.gr

Άβαταρ μέλους
dik_
Δημοσιεύσεις: 476
Εγγραφή: 07 Ιουν 2007 11:28

Πρόβλημα με Short Story!!

Δημοσίευση από dik_ » 13 Οκτ 2007 22:16

Ορίστε ένα που κόβει βάσει χαρακτήρων και μάλιστα δεν κόβει την τελευταία λέξη στη μέση (οπότε μπορεί να είναι +/- μερικούς χαρακτήρες):

Κώδικας: Επιλογή όλων

function character_limiter&#40;$str, $n = 500, $end_char = '&#8230;'&#41;&#123;
	if &#40;strlen&#40;$str&#41; < $n&#41;
		return $str;
		
	$str = preg_replace&#40;"/\s+/", ' ', preg_replace&#40;"/&#40;\r\n|\r|\n&#41;/", " ", $str&#41;&#41;;

	if &#40;strlen&#40;$str&#41; <= $n&#41;
		return $str;
									
	$out = "";
	foreach &#40;explode&#40;' ', trim&#40;$str&#41;&#41; as $val&#41;&#123;
		$out .= $val.' ';			
		if &#40;strlen&#40;$out&#41; >= $n&#41;
			return trim&#40;$out&#41;.$end_char;
	&#125;
&#125;

apoelista88
Δημοσιεύσεις: 19
Εγγραφή: 11 Σεπ 2005 03:11

Πρόβλημα με Short Story!!

Δημοσίευση από apoelista88 » 18 Οκτ 2007 14:53

file dik_ efxaristw gia tin voithia alla afto pou ithela sigkekrimena voithia itan o tropos na dimiourgiso to 'Read More...' koumpi pou akoma den exw katalavei pws pernei apo mono tou to $id gia na ginei katorthoti i selida me to plires kimeno.

Άβαταρ μέλους
majuranus
Δημοσιεύσεις: 404
Εγγραφή: 01 Μαρ 2006 19:47
Τοποθεσία: Veria
Επικοινωνία:

Πρόβλημα με Short Story!!

Δημοσίευση από majuranus » 04 Νοέμ 2007 15:32

na rotiso ego kati xazo?? pos to xrisimopoioume auto to function???

Άβαταρ μέλους
dik_
Δημοσιεύσεις: 476
Εγγραφή: 07 Ιουν 2007 11:28

Πρόβλημα με Short Story!!

Δημοσίευση από dik_ » 04 Νοέμ 2007 15:47

Για 500 χαρακτήρες:

Κώδικας: Επιλογή όλων

$extract = character_limiter&#40;$fulltext&#41;;
Για 300 και link "more" στο τέλος:

Κώδικας: Επιλογή όλων

$extract = character_limiter&#40;$fulltext, 300, "... <a href='blah.php?post=123'>more</a>"&#41;;

Άβαταρ μέλους
Stadem
Δημοσιεύσεις: 198
Εγγραφή: 10 Μαρ 2007 20:45

Πρόβλημα με Short Story!!

Δημοσίευση από Stadem » 04 Νοέμ 2007 17:42

apoelista88 έγραψε:file dik_ efxaristw gia tin voithia alla afto pou ithela sigkekrimena voithia itan o tropos na dimiourgiso to 'Read More...' koumpi pou akoma den exw katalavei pws pernei apo mono tou to $id gia na ginei katorthoti i selida me to plires kimeno.
Αν κατάλαβα καλά αυτό που ζητάς, θα κάνεις select από την βάση δεδομένων σου το κείμενο και θα το περάσεις από το function με τον τρόπο που αναφέρει παραπάνω και θα κάνεις το παρακάτω:
$end_char = 'Read more&#8230;' Δώσε περισσότερα στοιχεία για να καταλάβω. :)
web-IQ Interactive Quality
Εικόνα

NDH
Δημοσιεύσεις: 403
Εγγραφή: 03 Φεβ 2009 13:56
Επικοινωνία:

Πρόβλημα με Short Story!!

Δημοσίευση από NDH » 20 Μαρ 2010 01:14

kalo alla se merikes periptoseis xalaei to align tou site

Άβαταρ μέλους
Alice_Cooper
Δημοσιεύσεις: 1947
Εγγραφή: 11 Μάιος 2007 00:33
Τοποθεσία: Ioannina
Επικοινωνία:

Πρόβλημα με Short Story!!

Δημοσίευση από Alice_Cooper » 20 Μαρ 2010 02:46

gi'afto den fteei h function alla o tropos pou kaneis thn parousiash

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες