Toon posts:

[PHP] Tekst tussen tags in array zetten.

Pagina: 1
Acties:

Onderwerpen


Verwijderd

Topicstarter
Hallo allen,

Ik zit al de hele dag te dubben over hoe ik dit moet aanpassen. Echter schiet mijn kennis tekort, of is mijn koppijn te groot :/

Probleem:

Elk tekst-voorkomen die tussen twee tags staat in een array zetten.

Voorbeeld:

<p>Dit is para een</p> <p> dit is para twee</p>
<p class="leuk als dit ook werkt">para nummer drie</p>

wordt:
Array ( "Dit is para een", "dit is para twee", "para nummer drie")

_/-\o_

Verwijderd

Reguliere expressies zijn je vriend :).
En P&W is ook je vriend :) (verkeerde subforum).

Bij Reguliere Expressies moet je denken aan dit soort patronen:
[pseudo-code]
"<(alles)>(alles)</(alles)>"
[/pseudo-code]
De middelste "alles" moet je dan hebben,

Succes.

Linkjes:
http://nl2.php.net/manual/nl/ref.pcre.php
http://nl2.php.net/manual/nl/function.preg-replace.php
Programming & Webscripting

Edit: :+ is niet nodig hoor flashin, jou link geeft een zeer goede (Nederlandse) uitleg over reguliere expressies :).

[ Voor 68% gewijzigd door Verwijderd op 01-07-2004 17:53 ]


  • flashin
  • Registratie: Augustus 2002
  • Laatst online: 17-12-2023
Dit kan dmv van regular expressions heel makkelijk.

http://gerard.yoursite.nl/got/regex-tut/reference.html

edit: :+

[ Voor 6% gewijzigd door flashin op 01-07-2004 17:49 ]


Verwijderd

De meest uitgebreide Regular Expression tutorial site

De regex die jij nodig hebt:

JavaScript:
1
var re = new RegExp("<p([^ |>]*)([^>]*)>(.*?)<\/p([^ |>]*)([^>]*)>", "i");

Verwijderd

Topicstarter
Fock-it... verkeerde forum indeed (had inlogproblemen, daardoor teveel vensters open).

Dat het met reguliere expressies kan weet ik, maar ik krijg het niet zelf voor elkaar :(

  • McVirusS
  • Registratie: Januari 2000
  • Laatst online: 23-10 00:49
* McVirusS schopt 'm over de schutting.

Verwijderd

Verwijderd schreef op 01 juli 2004 @ 17:55:
De meest uitgebreide Regular Expression tutorial site

De regex die jij nodig hebt:

JavaScript:
1
2
var re = new 
RegExp("<p([^ |>]*)([^>]*)>(.*?)<\/p([^ |>]*)([^>]*)>", "i");
Let wel even op:
-Dit is alleen voor stukken tekst die tussen het element "<p>" staan
-Gebruik liever een PHP regex, en de /sie modfiers :)

Dan krijg je dit:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?
function mijnfunctie($input)
{
  global $stukken;
  //Zonder global doet ie het bij mij niet (php 4.3.4)
  $stukken[] = $input;
}

$regels_html = "<p style=\"Foo\">Foo</p> <b>And me?</b> <p>Another Foo</p>";
$regels_html = preg_replace("/<p(.*?)>(.*?)<\/p(.*?)>/sie",
 "mijnfunctie(\"$2\")", $regels_html);

echo "<pre>";
print_r($stukken);
echo "</pre>";
?> 

[ Voor 245% gewijzigd door Verwijderd op 01-07-2004 18:32 ]


  • Billie
  • Registratie: Januari 2003
  • Laatst online: 21:01
Hmm, misschien is array_push ook handig?

Verwijderd

Verwijderd schreef op 01 juli 2004 @ 18:13:
[...]

Let wel even op:
-Dit is alleen voor stukken tekst die tussen het element "<p>" staan
-Gebruik liever een PHP regex, en de /sie modfiers :)

Dan krijg je dit:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?
function mijnfunctie($input)
{
  global $stukken;
  //Zonder global doet ie het bij mij niet (php 4.3.4)
  $stukken[] = $input;
}

$regels_html = "<p style=\"Foo\">Foo</p> <b>And me?</b> <p>Another Foo</p>";
$regels_html = preg_replace("/<p(.*?)>(.*?)<\/p(.*?)>/sie",
 "mijnfunctie(\"$2\")", $regels_html);

echo "<pre>";
print_r($stukken);
echo "</pre>";
?> 
waarom gebruik je een preg_replace als een preg_match_all ook voldoende is, ik kan me namelijk niet voorstellen dat dit sneller is, en nodig is het zeker niet.

Verwijderd

Verwijderd schreef op 01 juli 2004 @ 19:47:
[...]


waarom gebruik je een preg_replace als een preg_match_all ook voldoende is, ik kan me namelijk niet voorstellen dat dit sneller is, en nodig is het zeker niet.
Umm :+
Geen echte onderbouwde mening, uit gewenning denk ik; ik gebruik altijd preg_replace :)
Pagina: 1