Welcome Guest, Not a member yet? Register   Sign In
preg_match not working we want to choose second title but it choose 1.
#1

Title tag use in same page one is button tag other is p tag  button tag is first title="watch later" other on a href tag title we want to import second a href tag title
source code

[Image: AUrk0j7.png]
[Image: ieuZsHk.png]

[img]hhttps://i.imgur.com/AUrk0j7.png[/img][Image: ufRsX6d.png]






i have tried many things to change /title but it import title is "watch later" i want second title import

            //Title
                    if(preg_match('/title="(.*?)"/', $match, $matches_title)) {
                        $video['title']    = htmlspecialchars_decode(strip_tags(stripslashes($matches_title[1])), ENT_QUOTES);
                    } else {
                        $this->errors[]    = 'Failed to get video title for '.$video['url'].'!';
                        if (!$this->debug) continue;
                        else $debug_e[] = 'TITLE';
                    }

how to choose second title under a tag ?
i want to remove watch later title .
Reply
#2

(This post was last modified: 06-14-2019, 07:14 AM by donpwinston. Edit Reason: More complete )

I believe the only way is to use an "offset" param in preg_match so you search past the first title. Or use PREG_OFFSET_CAPTURE as the flag parameter.
Simpler is always better
Reply
#3

Use preg_match_all()
CodeIgniter 4 tutorials (EN/FR) - https://includebeer.com
/*** NO support in private message - Use the forum! ***/
Reply
#4

(This post was last modified: 06-15-2019, 11:01 AM by jreklund.)

I don't know what more you are fetching from the site. But this will find both url and title for you.

Code:
$re = '@href="/?(video[0-9]+[^>]+)" title="(.*?)">@m';
preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);

And in your case, if you don't want it to do multiple things.
Code:
@p class="title">\s*<a.*?title="(.*?)">@
Reply




Theme © iAndrew 2016 - Forum software by © MyBB