double array onfixbaar
ik heb een probleem dat echt moeilijk op te lossen is (althans als je mijn manier opvolgt).
s.v.p. eerst uitleg lezen.
Nou heb ik een txt file die best wel groot is.
die wil ik in mijn pdf file omzetten (en aangezien er 100 karakakters per regel passen).
Doe ik het zo
Als ik het uitvoer met dit:
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?
#komt allemaal troep voor
foreach($text as $key => $doe) {
pdf_show_xy($pdf, $doe, 50, 710-($i*20));
$i++;
}
?>
#komt allemaal troep voor
foreach($text as $key => $doe) {
pdf_show_xy($pdf, $doe, 50, 710-($i*20));
$i++;
}
?>
En mijn resultaat is een pdf file die goed eruit ziet.
Alleen ziet het er wel langdradig uit..
ik wil minstends mijn kop stukken kunnen weergeven doordat het zo in mijn txt bestand staat
Maar als ik een explode gebruik dan heb ik 2 arrays :S, hoe zou ik dit moeten doen??
En verder wil je eigenlijk html opmaak omvormen naar pdf, zoek dat eens op.
(Is het niet handiger om er een database achter te hangen)
Code (php)
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
$get = "<h1>Test</h1>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.<h2>Test</h2>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus libero leo, pellentesque ornare, adipiscing vitae, rhoncus commodo, nulla. Fusce quis ipsum. Nulla neque massa, feugiat sed, commodo in, adipiscing ut, est. In fermentum mattis ligula. Nulla ipsum. Vestibulum condimentum condimentum augue. Nunc purus risus, volutpat sagittis, lobortis at, dignissim sed, sapien. Fusce porttitor iaculis ante. Curabitur eu arcu. Morbi quam purus, tempor eget, ullamcorper feugiat, commodo ullamcorper, neque.";
$get = preg_replace('#\<h1(.+?)\>#si', '[k]', $get);
$get = preg_replace('#\<h2(.+?)\>#si', '[k]', $get);
$get = str_replace('<h1>', '[k]',$get);
$get = str_replace('</h1>', '[/strip]',$get);
$get = str_replace('</h2>', '[/strip]',$get);
$get = str_replace(PHP_EOL, '',strip_tags($get));
$get = str_replace(' ', '', $get);
$get = explode('[/strip]',$get);
$aantal = count($get);
$text = Array();
for($i=0;$i<$aantal;$i++) {
$text[$i] = str_split($get[$i], 100);
}
print_r($text);
?>
$get = "<h1>Test</h1>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.<h2>Test</h2>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus libero leo, pellentesque ornare, adipiscing vitae, rhoncus commodo, nulla. Fusce quis ipsum. Nulla neque massa, feugiat sed, commodo in, adipiscing ut, est. In fermentum mattis ligula. Nulla ipsum. Vestibulum condimentum condimentum augue. Nunc purus risus, volutpat sagittis, lobortis at, dignissim sed, sapien. Fusce porttitor iaculis ante. Curabitur eu arcu. Morbi quam purus, tempor eget, ullamcorper feugiat, commodo ullamcorper, neque.";
$get = preg_replace('#\<h1(.+?)\>#si', '[k]', $get);
$get = preg_replace('#\<h2(.+?)\>#si', '[k]', $get);
$get = str_replace('<h1>', '[k]',$get);
$get = str_replace('</h1>', '[/strip]',$get);
$get = str_replace('</h2>', '[/strip]',$get);
$get = str_replace(PHP_EOL, '',strip_tags($get));
$get = str_replace(' ', '', $get);
$get = explode('[/strip]',$get);
$aantal = count($get);
$text = Array();
for($i=0;$i<$aantal;$i++) {
$text[$i] = str_split($get[$i], 100);
}
print_r($text);
?>
Dat is de code
en de output:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Array
(
[0] => Array
(
[0] => [k]Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut lab
[1] => ore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi
[2] => ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse c
[3] => illum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa
[4] => qui officia deserunt mollit anim id est laborum.[k]Lorem ipsum dolor sit amet, consectetur adipisci
[5] => ng elit. Vivamus libero leo, pellentesque ornare, adipiscing vitae, rhoncus commodo, nulla. Fusce qu
[6] => is ipsum. Nulla neque massa, feugiat sed, commodo in, adipiscing ut, est. In fermentum mattis ligula
[7] => . Nulla ipsum. Vestibulum condimentum condimentum augue. Nunc purus risus, volutpat sagittis, lobort
[8] => is at, dignissim sed, sapien. Fusce porttitor iaculis ante. Curabitur eu arcu. Morbi quam purus, tem
[9] => por eget, ullamcorper feugiat, commodo ullamcorper, neque.
)
)
(
[0] => Array
(
[0] => [k]Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut lab
[1] => ore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi
[2] => ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse c
[3] => illum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa
[4] => qui officia deserunt mollit anim id est laborum.[k]Lorem ipsum dolor sit amet, consectetur adipisci
[5] => ng elit. Vivamus libero leo, pellentesque ornare, adipiscing vitae, rhoncus commodo, nulla. Fusce qu
[6] => is ipsum. Nulla neque massa, feugiat sed, commodo in, adipiscing ut, est. In fermentum mattis ligula
[7] => . Nulla ipsum. Vestibulum condimentum condimentum augue. Nunc purus risus, volutpat sagittis, lobort
[8] => is at, dignissim sed, sapien. Fusce porttitor iaculis ante. Curabitur eu arcu. Morbi quam purus, tem
[9] => por eget, ullamcorper feugiat, commodo ullamcorper, neque.
)
)
is er misschien een mogelijkheid om het zo te maken dat ik zoiets krijg:
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
Array
(
[0] => Array
(
[0] => Koptext
[1] => Content
[2] => Koptext
[3] => Content
)
)
(
[0] => Array
(
[0] => Koptext
[1] => Content
[2] => Koptext
[3] => Content
)
)
Gewijzigd op 01/01/1970 01:00:00 door Kumkwat Trender
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?php
$sString = '<h1>Lorem ipsum</h1> dolor sit amet, consectetur adipiscing elit. Praesent fringilla odio in orci gravida gravida. Cras in orci.
Nulla facilisi. Lorem ipsum dolor sit amet, consectetur adipiscing elit. <h2>In hac habitasse platea dictumst.</h2> Nullam lacinia pharetra tortor.
Aenean lectus orci, convallis sit amet, gravida nec, bibendum ac, orci. Sed tincidunt tortor a eros. Quisque tincidunt interdum lorem.
Vestibulum lorem. Phasellus tellus libero, porttitor et, porttitor nec, tincidunt ut, quam. Praesent sed mauris.';
$aResult = preg_split('_(<h[0-9]>.+?</h[0-9]>)_is', $sString, -1, PREG_SPLIT_DELIM_CAPTURE|PREG_SPLIT_NO_EMPTY);
echo '<pre>'.htmlentities(print_r($aResult, true)).'</pre>';
?>
$sString = '<h1>Lorem ipsum</h1> dolor sit amet, consectetur adipiscing elit. Praesent fringilla odio in orci gravida gravida. Cras in orci.
Nulla facilisi. Lorem ipsum dolor sit amet, consectetur adipiscing elit. <h2>In hac habitasse platea dictumst.</h2> Nullam lacinia pharetra tortor.
Aenean lectus orci, convallis sit amet, gravida nec, bibendum ac, orci. Sed tincidunt tortor a eros. Quisque tincidunt interdum lorem.
Vestibulum lorem. Phasellus tellus libero, porttitor et, porttitor nec, tincidunt ut, quam. Praesent sed mauris.';
$aResult = preg_split('_(<h[0-9]>.+?</h[0-9]>)_is', $sString, -1, PREG_SPLIT_DELIM_CAPTURE|PREG_SPLIT_NO_EMPTY);
echo '<pre>'.htmlentities(print_r($aResult, true)).'</pre>';
?>
Maar waarom zou je dit in php willen doen?
Thnx
@yorrick, met wat moet ik het dan doen? met html xD?
Gewijzigd op 01/01/1970 01:00:00 door Kumkwat Trender
yorick17 schreef op 11.01.2009 15:18:
Waarmee zou je dit volgens jou dan moeten doen?Maar waarom zou je dit in php willen doen?
Gewoon voor definieren
yorick17 schreef op 11.01.2009 15:30:
Verklaar je nader? Dit volg ik niet...Gewoon voor definieren
In plaats van dat je in je textbestand een soort van ubb code schrijft kun je daar toch ook gelijk html schrijven, dan hoef je het niet om te zetten.
Hij wil de kopteksten gescheiden van de content in verschillende entries in een array. Of je nu HTML of UBB code in het text bestand gebruikt, dat doet er niet toe. Het gaat om het scheiden van die kopteksten van de content...
Oke maar mijn reactie ging wel om of je ubb of html gebruikt.
yorick17 schreef op 11.01.2009 15:42:
Je weet niet in wat voor soort systeem het zit. Je weet niet of het wel een optie is om daartussen te switchen. Je weet niet waar de betreffende tekst vandaan komt. Je kunt dus totaal geen afweging maken welke optie beter is.Oke maar mijn reactie ging wel om of je ubb of html gebruikt.
Kortom, de TS heeft 3x niets aan je opmerking. Helaas... :-(
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
Oke oke, maar ik probeer ook alleen maar te helpen hoor.
yorick17 schreef op 11.01.2009 15:46:
Met alle respect maar als je het antwoord niet weet of totaal niet op de vraag reageert, reageer dan liever niet. Dit lijkt meer op het willen opkrikken van je postcount dan het serieus helpen...Oke oke, maar ik probeer ook alleen maar te helpen hoor.
Blanche schreef op 11.01.2009 15:50:
yorick17 schreef op 11.01.2009 15:46:
Met alle respect maar als je het antwoord niet weet of totaal niet op de vraag reageert, reageer dan liever niet. Dit lijkt meer op het willen opkrikken van je postcount dan het serieus helpen...Oke oke, maar ik probeer ook alleen maar te helpen hoor.
Dat was niet de bedoeling in ieder geval.
linkje
hoe kan ik dat ook nog erbij zetten?
Code (php)
1
2
3
2
3
<?
$aResult = preg_split('_<h[0-9]>(.+?)</h[0-9]>_is', $get, -1, PREG_SPLIT_DELIM_CAPTURE|PREG_SPLIT_NO_EMPTY);
?>
$aResult = preg_split('_<h[0-9]>(.+?)</h[0-9]>_is', $get, -1, PREG_SPLIT_DELIM_CAPTURE|PREG_SPLIT_NO_EMPTY);
?>
er passen 100 karakters per regel in een pdf vandaar..
Edit:
ow, w8.
ik snap al wat ik moet doen .. -_-'
ik dacht dat /[\40] de aantal karakters waren, vandaar.
Gewijzigd op 01/01/1970 01:00:00 door Kumkwat Trender
Je geeft zelf het antwoord al, die maximum lengte komt verderop in dat voorbeeldje pas aan bod ;-)
Het uit elkaar scheiden door middel van spatie, als ik dat doe dan krijg ik 2 arrays door elkaar heen :S
Het lijkt mij makkelijker om eerst met behulp van preg_split() ervoor te zorgen dat je koptekst van content scheidt. Vervolgens kun je dan wel met wordwrap() aan de gang om te zorgen dat je maximaal 100 tekens per regel krijgt...