libraries/tbs/plugins/tbs_plugin_opentbs.php
static function FindStartTagHavingAtt(&$Txt, $Att, $PosBeg, $Forward=true) {

		$p = $PosBeg - (($Forward) ? 1 : -1);
		$x = (strpos($Att, '=')===false) ? (' '.$Att.'="') : (' '.$Att); // get the item more precise if not yet done
		$search = true;

		do {
			if ($Forward) {
				$p = strpos($Txt, $x, $p+1);
			} else {
				$p = strrpos(substr($Txt, 0, $p+1), $x);
			}
			if ($p===false) return false;
			do {
			  $p = $p - 1;
			  if ($p<0) return false;
			  $z = $Txt[$p];
			} while ( ($z!=='<') && ($z!=='>') );
			if ($z==='<') $search = false;
		} while ($search);

		return new clsTbsXmlLoc($Txt, '', $p);

	}
static function FindStartTagHavingAtt(&$Txt, $Att, $PosBeg, $Forward=true) {

		$p = $PosBeg - (($Forward) ? 1 : -1);
		$x = (strpos($Att, '=')===false) ? (' '.$Att.'="') : (' '.$Att); // get the item more precise if not yet done
		$search = true;

		do {
			if ($Forward) {
				$p = strpos($Txt, $x, $p+1);
			} else {
				$p = strrpos(substr($Txt, 0, $p+1), $x);
			}
			if ($p===false) return false;
			do {
			  $p = $p - 1;
			  if ($p<0) return false;
			  $z = $Txt[$p];
			} while ( ($z!=='<') && ($z!=='>') );
			if ($z==='<') $search = false;
		} while ($search);

		return new clsTbsXmlLoc($Txt, '', $p);

	}
static function FindStartTagHavingAtt ( & $ Txt , $ Att , $ PosBeg , $ Forward = true ) { $ p = $ PosBeg - ( ( $ Forward ) ? 1 : - 1 ) ; $ x = ( strpos ( $ Att , '=' ) === false ) ? ( ' ' . $ Att . '="' ) : ( ' ' . $ Att ) ; // get the item more precise if not yet done $ search = true ; do { if ( $ Forward ) { $ p = strpos ( $ Txt , $ x , $ p + 1 ) ; } else { $ p = strrpos ( substr ( $ Txt , 0 , $ p + 1 ) , $ x ) ; } if ( $ p === false ) return false ; do { $ p = $ p - 1 ; if ( $ p < 0 ) return false ; $ z = $ Txt [ $ p ] ; } while ( ( $ z !== '<' ) && ( $ z !== '>' ) ) ; if ( $ z === '<' ) $ search = false ; } while ( $ search ) ; return new clsTbsXmlLoc ( $ Txt , '' , $ p ) ; }
The given attribute can be with or without a specific value. Example: 'visible' or 'visible="1"'
The given attribute can be with or without a specific value . Example : visible or visible = 1