DomQuery
v1.1
Domquery هي مكتبة PHP تتيح لك اجتياز DOM وتعديلها بسهولة (HTML/XML). كمكتبة تهدف إلى توفير "JQuery Like" الوصول إلى فئة PHP DomDocument (http://php.net/manual/en/book.dom.php).
تثبيت أحدث إصدار مع
$ composer require rct567/dom-query use Rct567 DomQuery DomQuery ;
$ dom = new DomQuery ( ' <div><h1 class="title">Hello</h1></div> ' );
echo $ dom -> find ( ' h1 ' )-> text (); // output: Hello
echo $ dom -> find ( ' div ' )-> prop ( ' outerHTML ' ); // output: <div><h1 class="title">Hello</h1></div>
echo $ dom -> find ( ' div ' )-> html (); // output: <h1 class="title">Hello</h1>
echo $ dom -> find ( ' div > h1 ' )-> class ; // output: title
echo $ dom -> find ( ' div > h1 ' )-> attr ( ' class ' ); // output: title
echo $ dom -> find ( ' div > h1 ' )-> prop ( ' tagName ' ); // output: h1
echo $ dom -> find ( ' div ' )-> children ( ' h1 ' )-> prop ( ' tagName ' ); // output: h1
echo ( string ) $ dom -> find ( ' div > h1 ' ); // output: <h1 class="title">Hello</h1>
echo count ( $ dom -> find ( ' div, h1 ' )); // output: 2 use Rct567 DomQuery DomQuery ;
$ dom = new DomQuery ( ' <a>1</a> <a>2</a> <a>3</a> ' );
$ links = $ dom -> children ( ' a ' );
foreach ( $ links as $ elm ) {
echo $ elm -> text (); // output 123
}
echo $ links [ 0 ]-> text (); // output 1
echo $ links -> last ()-> text (); // output 3
echo $ links -> first ()-> next ()-> text (); // output 2
echo $ links -> last ()-> prev ()-> text (); // output 2
echo $ links -> get ( 0 )-> textContent ; // output 1
echo $ links -> get (- 1 )-> textContent ; // output 3 use Rct567 DomQuery DomQuery ;
DomQuery:: create ( ' <a title="hello"></a> ' )-> attr ( ' title ' ) // hello .find( selector ).children( [selector] ).parent( [selector] ).closest( [selector] ).next( [selector] ).prev( [selector] ).nextAll( [selector] ).prevAll( [selector] ).nextUntil( [selector] ).prevUntil( [selector] ).siblings( [selector] ) .contents().add( selector, [context] ) نتيجة جديدة مع عناصر مضافة تتطابق مع المحدد.addBack() .is( selector ).filter ( selector ).not( selector ) قم بإزالة العناصر من مجموعة العناصر المتطابقة.has( selector ) يقلل إلى أولئك الذين لديهم سليل يطابق المحدد.first( [selector] ).last( [selector] ).slice( [offset] [, length]) مثل Array_slice في PHP ، وليس JS/jQuery.eq( index ).map( callable(elm,i) )* [محدد] يمكن أن يكون محددًا CSS أو مثيلًا لـ DomQuery | Domnodelist | Domnode
.text( [text] ).html( [html_string] ).append( [content],... ).prepend( [content],... ).after( [content],... ).before( [content],... ).appendTo( [target] ).prependTo( [target] ).replaceWith( [content] ).wrap( [content] ).wrapAll( [content] ).wrapInner( [content] ).remove( [selector] )* [المحتوى] يمكن أن يكون HTML أو مثيل Domquery | domnodelist | domnode
.attr( name [, val] ).prop( name [, val] ).css( name [, val] ).removeAttr( name ).addClass( name ).hasClass( name ).toggleClass ( name ).removeClass( [name] )* AddClass ، removeclass ، toggleclass و removeAttr يقبل أيضًا صفيف أو أسماء مفصولة بالفضاء
.get( index ).each ( callable(elm,i) ).data ( key [, val] ).removeData ( [name] ).index ( [selector] ).toArray().clone() .class#fooparent > childfoo, bar متعددين محدداتprev + next التي تتطابق مع "التالي" التي تسبقها مباشرة من قبل شقيق "سابق"prev ~ siblings التي تطابق "الأشقاء" التي يسبقها "السابق"* كل المحدد[name="foo"] قيمة السمة متساوية FOO[name*="foo"] قيمة السمة تحتوي على foo[name~="foo"] قيمة السمة تحتوي على كلمة foo[name^="foo"] تبدأ قيمة السمة بـ Foo[name$="foo"] تنتهي قيمة السمة مع FOO[name|="foo"] قيمة السمة تساوي FOO ، أو بدء FOO متبوعًا بصفعة الواصلة (-):empty:even:odd:first-child:last-child:only-child:nth-child(n):parent التي لديها عقدة طفل واحد على الأقل:first:last:header H1 ، H2 ، H3 إلخ.:not(foo) عناصر لا تتطابق مع المحدد فو:has(foo) التي تحتوي على عنصر واحد على الأقل يطابق FOO Selector:contains(foo) التي تحتوي على نص foo:root الذي هو جذر المستند findOrFail( selector ) العثور على أحفاد كل عنصر في المجموعة الحالية من العناصر المتطابقة ، أو رمي استثناءloadContent(content, encoding='UTF-8') تحميل محتوى html/xmlxpath(xpath_query) xpath للعثور على أحفاد كل عنصر في المجموعة الحالية من العناصر المتطابقةgetOuterHtml() احصل على HTML الناتج عن وصف جميع العناصر (مثل (string) $dom ، أو $elm->prop('outerHTML') )) xml_mode على TRUE)xml_mode إلى FALSE لمنع ذلك.xml_mode على خطأ ثم استخدام طريقة loadContent($content) .هربا من شواطئ التعريف في المحدد للعثور على عناصر ذات مساحة الاسم:
$ dom -> find ( ' namespace \ :h1 ' )-> text ();